What Secret Santa Generator does
Enter between 3 and 200 names, one per line, and this tool assigns each person exactly one other person to buy for. Nobody draws their own name and nobody is left out: everyone gives one gift and receives one. If partners or housemates should not draw each other, list them on an exclusion line and the draw avoids those pairings in both directions. When the rules make a draw impossible, it says so and points to the person whose options ran out. The result is a plain table and a copyable list. There is no email step, no signup and no saved event, which also means the person who runs the draw sees every match. The section on keeping it secret covers ways around that.
Example draws with and without exclusions
Real results from this tool. Your own draw will differ, because every press of the button is a new random draw.
Six friends, one couple kept apart
Names: Alex, Jordan, Taylor, Casey, Morgan, Riley. Exclusions: Alex, Jordan
Alex gives to Riley, Jordan to Morgan, Taylor to Casey, Casey to Taylor, Morgan to Alex, Riley to Jordan
Alex and Jordan did not draw each other. Taylor and Casey drew each other, which the Check panel reports as 1 direct swap.
Three couples
Names: Ann, Bob, Cy, Dee, Ed, Fay. Exclusions: Ann, Bob / Cy, Dee / Ed, Fay
Ann gives to Fay, Bob to Dee, Cy to Ann, Dee to Ed, Ed to Cy, Fay to Bob
One gift loop of 6: follow the chain from Ann and you pass through everyone before returning to her.
A family of three plus three friends
Names: Mum, Dad, Sam, Priya, Leo, Nina. Exclusions: Mum, Dad, Sam
Mum gives to Nina, Dad to Leo, Sam to Priya, Priya to Sam, Leo to Mum, Nina to Dad
One line with three names counts as 3 excluded pairs. Each family member buys for a friend.
A household that is too big for the group
Names: Mum, Dad, Sam, Priya, Leo. Exclusions: Mum, Dad, Sam
No valid draw exists with these exclusions. For example, Mum can only give to Priya or Leo.
Three people who can only give to the same two recipients cannot all be placed. Adding Nina, as above, fixes it.
Three people with one exclusion
Names: Ann, Bob, Cy. Exclusions: Ann, Bob
No valid draw exists. Ann can only give to Cy.
Bob can also only give to Cy, and Cy cannot receive two gifts.
How many different Secret Santa draws are possible
The number of ways to assign givers so that nobody has their own name. Counted by listing every arrangement.
| People | Exclusions | Possible draws |
|---|---|---|
| 3 | None | 2 |
| 4 | None | 9 |
| 4 | One couple | 4 |
| 4 | Two couples | 4 |
| 5 | None | 44 |
| 5 | One couple | 24 |
| 6 | None | 265 |
| 6 | One couple | 168 |
| 6 | Three couples | 80 |
| 6 | One household of 3 | 36 |
| 8 | None | 14,833 |
| 8 | Four couples | 4,752 |
| 10 | None | 1,334,961 |
Without exclusions, about 36.8% of all random orderings of a group have nobody matched to themselves. That share barely changes with group size: 37.5% for 4 people, 36.8% for 6 and for 10.
Keeping the draw secret when one person runs it
This page shows every pair at once. It has no way to reveal one match at a time, send messages or create a private link per person, because it has no server and stores nothing. That is the trade-off for needing no email addresses. Whoever presses the button can see who everybody has.
Three ways to handle it. First, ask someone who is not taking part to run the draw and pass on the results: a colleague from another team, a relative who is skipping the exchange, a neighbour. Second, let the organiser take part but accept that they know. In many families one person already coordinates sizes and wish lists, and the surprise for everyone else is intact. Third, if you are the organiser and want to be surprised too, download the text file without reading the table, and have someone else open it and hand out the lines.
Once you have the list, send each person their own line only. A private message works, and so does printing the list, cutting it into strips and folding them. Keep the downloaded file somewhere safe until the exchange: if a participant drops out or forgets their match, the file is the only record.
Rules for writing names and exclusions
- One name per line. Blank lines and extra spaces are ignored.
- Every name must be unique, ignoring capitals. Alex and alex count as the same person and are reported as a duplicate, so use Alex P and Alex R.
- Do not put commas inside a name. In the Exclusions box a comma separates one person from the next.
- Each exclusion line needs at least two names, spelled as they are in the list. Capitals do not matter, but Jordon will not match Jordan and is reported with its line number.
- Exclusions always work both ways. There is no option to block Alex from drawing Jordan while still allowing Jordan to draw Alex.
- Three or more names on one line means nobody on that line draws anybody else on it. A line of 3 creates 3 excluded pairs, a line of 4 creates 6.
- A group excluded together cannot be more than half of all participants, or there are not enough outside recipients for them.
How the names are drawn
The tool shuffles the list of names at random and lines the shuffled list up against the original: the first person gives to whoever landed in first place, and so on. If anyone has been matched with themselves or with an excluded person, the whole shuffle is thrown away and repeated, up to 300 times. Discarding and reshuffling, instead of patching a bad result by swapping two names, is what makes every valid draw equally likely. In a test of 9,000 draws for a group of 4, each of the 9 possible outcomes came up between 947 and 1,058 times.
With many exclusions a valid shuffle can be rare. If none turns up in 300 tries, the tool switches to a matching search that assigns recipients one giver at a time and reassigns earlier ones when it gets stuck. That method always finds a draw when one exists, and it is how the tool can say for certain that none does. Draws found this way are still random, though not guaranteed to be perfectly evenly spread.
The randomness comes from your browser's ordinary random number source. It is unpredictable enough for a gift exchange and is not designed for lotteries or anything with money at stake.
Using Secret Santa Generator
- 1
Type or paste the participants into Names, one per line. You need at least 3.
- 2
In Exclusions, add one line for each set of people who must not draw each other, with commas between the names: Alex, Jordan.
- 3
Press Draw names. Each press produces a new random draw.
- 4
Check the table: the left column is the giver, the right column is the person they buy for.
- 5
Copy the One line per person list or download it as a text file straight away, because the page does not keep the draw.
- 6
Send each person only their own line, by message or on a folded slip of paper.