Secret Santa Generator
Type your names, draw once, and nobody ends up buying for themselves.
Why a plain shuffle is not enough
Secret Santa has one rule that everyone agrees on before anyone thinks about the maths: nobody buys a gift for themselves. That sounds trivial until you try to build it out of the same shuffle used elsewhere on this site. Shuffle a list and hand each name the one after it in the new order, and on an unlucky shuffle someone can still end up paired with themselves — the exact outcome the whole exercise exists to prevent.
This tool avoids that a different way. It shuffles the group first, so who ends up next to whom is unpredictable, and then assigns each person the next name in that shuffled order as their giftee, wrapping the last person back around to the first. A single cycle built this way mathematically cannot contain anyone paired with themselves, for any group of two or more — not "very unlikely," but structurally impossible. The randomness decides which cycle you get; the cycle shape is what guarantees no self-match.
What this tool actually shows you
The result is the full list: every giver next to the person they draw. That makes this version best suited to an organiser running the exchange — a team lead, a class parent, a group chat admin — who screenshots or copies the whole list and tells each person privately who they have, rather than everyone gathering around one screen and reading their own line off a shared display.
If your group wants a truly private per-person reveal where nobody, including the organiser, sees the whole list, run this tool once for the assignment and then message each person their single line separately, or ask each person to look away while the next person checks the screen. The fairness guarantee is identical either way; only who gets to see the full list changes.
Handling exclusions by hand
This tool does not currently support hard exclusion rules — for example, preventing two partners in the same household from drawing each other. The honest way to handle that today is to re-roll: if the result pairs two people who should not be paired, press the button again. Because the assignment is freshly random each time, a re-roll is not "cheating" the draw, it is simply drawing again until you get an outcome your group's actual rules allow.
For a small group with several exclusion pairs, this can take a few tries. That is a real limitation worth knowing about rather than glossing over: a dedicated constraint-solving version would guarantee an exclusion-respecting result on the first draw, and may be added later if enough people ask for it.
Practical use
Paste one name per line, same as every other tool on this site. Names can repeat if two people share a first name — add a last initial or nickname to tell them apart in the result. There is no minimum group size beyond two people, though a group of two just means each person draws the other, which most people already know without needing a tool for it.
Nothing you type is uploaded, stored, or logged; reloading the page clears the result and gives you the default example names again, exactly like every other tool here.
Questions
Can someone really never draw their own name?
Correct, by construction rather than by luck. Every assignment is built from a single random cycle through the shuffled names, and a cycle of two or more people can never loop a person back to themselves. The randomness affects who gets paired with whom, not whether the self-match rule holds.
Can I stop two specific people being paired, like a couple?
Not automatically yet. Press the draw button again until you get a result that respects your group's exclusion rules — each draw is an independent fresh random assignment, so re-rolling is a normal, unbiased way to reach an outcome you are happy with.
Does this keep the assignment secret from the organiser?
No — the full list appears on screen for whoever runs the tool. If you want a private reveal, have the organiser run it once, then privately message each person their single line rather than sharing the whole screen with the group.
How many people can I add?
There is no hard limit. Very large groups (say, over a hundred people) will still produce a fair, valid assignment; the result list simply gets longer to scroll through.