Secret Santa generator
Draws the whole gift exchange in one go, arranged so nobody gets their own name and nobody ends up in an obvious two-person swap.
Draw the assignments
One participant per line.One pair per line, separated by | or a comma. Those two will never be assigned to each other.
Press Generate pairs and the assignments appear here.
Why a hat full of names does not work
The traditional method — everyone writes their name, folds it, and draws one out — fails in a specific and annoying way: eventually someone draws themselves. Then you have to decide whether to restart the whole thing or let that person swap with someone, and the swap tells them something about who has whom. If the last person to draw gets their own name, a restart is the only clean option.
This tool avoids the problem by construction rather than by luck. It shuffles everyone into a random circle and gives each person the next person along, closing the loop at the end. Because the arrangement is a single circle, nobody can point at themselves, and with three or more people no two participants are gifting each other.
The single-circle choice, and its one trade-off
Arranging everyone in one loop has a nice property beyond avoiding self-assignment: it rules out the mutual pair. In a purely random valid assignment, Avery and Bailey can perfectly well be each other's Santa, and people often find that disappointing — it feels like the exchange collapsed into a private swap.
The trade-off, stated honestly: a single circle is not the same as picking uniformly among all possible valid arrangements. Every participant is still equally likely to be assigned to any other participant, so nobody is favoured or disadvantaged. But arrangements that contain smaller loops — a group of three swapping among themselves while the rest form another ring — will never come up here, and in a fully uniform draw they occasionally would. We think that is the right call for a gift exchange, where a single unbroken chain is what people expect. If you specifically want the fully uniform version, a hat with restarts is the way to get it.
Exclusions for couples and households
The classic request is that partners should not get each other, because they will spend the same money either way and the surprise disappears. Put Avery | Bailey in the second box and that pairing is ruled out in both directions.
Two practical warnings. First, exclusions can become impossible — in a group of four with two excluded couples, some combinations simply cannot be satisfied by a single circle, and the tool will say so instead of pretending. If that happens, drop one exclusion or add another participant. Second, every exclusion you add leaks a little information: if the group knows partners are excluded, everyone can rule out one name when guessing. That is usually a fine price to pay.
How do we keep it actually secret?
Three approaches that work, in rough order of how much trust they need. Ask someone who is not in the exchange to run it and message each person privately. Or run it yourself and, if you are participating, look only at your own line — imperfect but usually enough among friends. Or, the fully secret option: have each person open this page separately with only the names of possible recipients still available, which is more effort than most groups want.
What definitely does not work is generating the list and pasting it into the group chat, which we have watched happen more than once.
Does everyone get exactly one gift?
Yes. Because the assignment is a closed circle, every participant gives exactly once and receives exactly once. Nobody is left out and nobody gets two.
Can I add someone after generating?
Add them to the list and generate again — the whole exchange is redrawn. There is no way to slot one person into an existing circle without changing at least one other assignment, so if people have already been told their names, adding a latecomer means redoing the draw for everyone.