Secret Santa generator

Type everyone's names, draw, and pass the device around — each person taps their own name and sees only who they are buying for. Nobody draws themselves, and you can tell it which people live together so they never draw each other.

0 entries. Blank lines are ignored, and repeated names are kept — two people really can share one.

The draw

Everyone's name will appear here. Tap your own to see who you are buying for.

Save this list

Nothing saved yet. Lists you save stay in this browser — they are never uploaded.

How it works

A Secret Santa draw is not a shuffle. A shuffle puts a list in a random order; this has to pair every person with somebody else, and it has two rules a shuffle knows nothing about. Nobody may draw themselves, and — if you use the household setting — nobody may draw a person they live with. A pairing where nobody draws themselves has a name in mathematics: a derangement.

The obvious way to build one is to shuffle the names, check whether anybody got themselves, and shuffle again if they did. That works right up until it does not. Two people in the same household have nobody left to draw, and a tool written that way will sit there shuffling forever, with no error and no explanation — the tab simply stops responding. It is a genuinely common defect in this category, and it is invisible until somebody enters the one combination that triggers it.

So this tool does something different, in a fixed order. First it works out whether a valid draw exists at all, using an exact method rather than by trying — if four housemates can only buy for one other person between them, no amount of shuffling will fix it, and the tool says so immediately and names the people involved. Only once a valid draw is known to exist does it start drawing. That is what turns an unbounded retry into a bounded one.

The draw itself is a uniform random pairing: it takes a genuinely random arrangement of everyone and keeps the first one that breaks no rule. Because every arrangement was equally likely to begin with, every valid pairing is equally likely to come out. The randomness comes from crypto.getRandomValues, your browser's built-in generator, with the small remainder-bias corrected the same way it is on the order shuffler — the full explanation is on the fairness page.

The one case where we tell you the draw was not even

If the households are tight enough — a party that is almost entirely couples, say — a valid pairing can be rare enough that the even method runs out of attempts. Rather than give up, or loop forever, the tool then builds a working pairing directly. Every rule still holds. But that construction is not an even choice among all the valid pairings, and when it happens the page says so in plain words above the result. We would rather tell you than quietly let you assume a guarantee that did not apply to your particular draw.

Two people can draw each other, and that is correct

Sometimes Ana draws Ben and Ben draws Ana. It looks like a mistake and it is not. Forcing everyone into a single unbroken chain — so the gifts pass right around the group and back — would mean ruling out perfectly valid pairings, and ruling out valid outcomes is exactly the kind of hidden thumb on the scale this site exists not to have. If you would rather avoid it, the household setting is the honest way: put the two people in the same household and they will never be paired.

Worked examples

An office of twenty, in one pass

Paste twenty names, press draw, and put the phone down on the desk. People come over one at a time, tap their own name, read who they are buying for, and press hide before passing it on. Nobody needs an email address, nobody needs to install anything, and there is no organiser who secretly knows the whole list — unless they choose to look.

A family Christmas where the couples should not pair up

Ten people, four of them two married couples. Turn on the household setting, give each couple its own letter, and draw. Neither partner can draw the other, so nobody spends December buying a present for somebody they will be sitting next to on the sofa anyway.

A flat share with three households

Nine housemates across three flats, and the point of the exchange is that people buy for somebody they do not already live with. Three letters, one draw. If you set it up in a way that cannot work, the tool tells you which group is the problem rather than failing vaguely.

The same group next year

Save the list under a name and it is still there next December. That is the part a search result cannot do for you: the twenty names are the tedious bit, and typing them once is enough.

Questions people actually ask

Can it email everyone their name?

No, and the reason is the same one that runs through the rest of this site. Sending email means a server, and a server means your friends' names and addresses leaving your device. Everything here happens inside your browser, so there is nothing to send them with. Passing one device around is the version of this that does not require us to collect anything, which is why it is the mode the tool opens in.

Can the organiser see the whole list?

Yes, if they want to — there is a button for it, and it is deliberately not the default. Somebody running a draw for a remote team needs the full list so they can message people individually. Somebody running it in a room does not, and showing the answer to whoever is looking over their shoulder would defeat the entire exercise.

Is my draw stored anywhere?

It is stored in your own browser on your own device, and nowhere else. That is deliberate: a party passing one phone around should not lose the draw because somebody locked the screen or the page reloaded. It does mean the answer stays on that device until you clear it, so the tool has a Clear the draw button that removes it. Nothing is uploaded, and no server here ever sees a name — open your browser's network tab and draw, and you will see nothing go out.

What happens to duplicate names?

They are kept, and they are treated as two different people. Two guests really can both be called Sam, and quietly merging them would remove somebody from the exchange without telling you. If it matters that people can tell them apart, add a surname or an initial.

Can I draw again if I do not like the result?

You can, and it is worth being honest about what that means. Re-drawing until you get an arrangement you like is no longer a random draw — it is your preference, with extra steps. The button is there because people mistype names and need to start over, not as a way to steer the outcome.

How many people can take part?

Any number from two upwards, up to the list limit. Two works, though with two people there is only one possible pairing and both of them will guess it immediately.

Limitations, stated plainly

Related tools