Secret Santa Generator

Draw names for a gift exchange — with exclusions for couples, a pass-the-phone reveal and printable slips.

Couples, housemates, last year’s match. Separate the names with -, a comma or &; use the names exactly as listed above.

Details to print on the slips (optional)

The draw happens in this tab. Nothing is sent anywhere, and nobody needs an account.

🔒 Runs entirely in your browser — nothing you type is uploaded or stored on a server.

Type everyone’s name, say who should not draw each other — couples, housemates, last year’s match — and press Draw names. Nobody draws themselves, nobody draws a name you excluded, and unless you untick it, nobody draws the person who drew them.

Also on Txtset: shuffle or sort any list · randomize your own list.

Nobody has to trust the organiser’s eyes. The result opens as a row of names. Pass the phone round: each person taps their own name, taps Show, remembers who they got and taps Hide. A ✓ marks who has looked. If you would rather hand out paper, download printable slips — eight to an A4 page, each one folded so the name you are buying for stays hidden on the inside. Add a budget, a date and a short message and they print on every slip.

Your draw is kept on this device, so you can leave and come back. The names, the pairs and who has already looked are saved in your browser — there is no account and nothing is uploaded — so closing the tab does not lose a draw halfway through handing it out. One button deletes it when the exchange is over.

Why there are no email invitations or share links: sending each person their match would mean this site holding the whole draw on a server. It never leaves your device, which is why the options are passing the phone round and printing slips.

How to use

  1. Type the names, one per line. You need at least three.
  2. Under Who should NOT draw each other, add one pair or household per line, such as Ana - Ben or Chloe, Dev, Eli.
  3. Press Draw names, then pass the phone round so each person can look, or download the printable slips.
  4. Come back to the page any time — the draw is still there. Press Delete saved draw when you are done.

Examples

Ana, Ben, Chloe, Dev, Eli
Everyone draws exactly one other person and is drawn by exactly one.
Exclusion line Ana - Ben
Ana never draws Ben and Ben never draws Ana — for couples and housemates.
Exclusion line Chloe, Dev, Eli
A household of three: none of them draws anybody else from that line.
Exclusions that leave nobody for Ana
The page names the people who are stuck, instead of trying again for ever.

Frequently asked questions

Can the organiser see who got whom?
Not with pass-the-phone: a pairing is shown only to the person who taps Show, and it is wiped from the page when they hide it. The draw is saved in your browser’s storage, so anyone who opens developer tools on this device could read it — this is a party game, not a vault. The organiser view and the printed slips do list every pair, and each asks you to confirm first: use them only if you are not playing, or print and fold the slips without reading them.
What if someone forgets who they drew?
Tap their name again. Because they have already looked, you get a warning first — anyone watching will see their match — and then it is shown once more. For a lost paper slip, the organiser view lists every pair.
Can couples be kept apart?
Yes. Under Who should NOT draw each other, put one pair or household on each line, separated by a hyphen with spaces, a comma or &. The names must match the list above. If your exclusions leave no valid draw at all, the page says which names are stuck.
Is it really random?
The shuffle uses crypto.getRandomValues, the browser’s cryptographic random number generator, with rejection sampling so no number is favoured. For up to eight people the page lists every valid draw and picks one at random. For larger groups it shuffles until a shuffle satisfies your rules. Either way, every valid draw is equally likely. If the exclusions are so tight that shuffling cannot land on one in a fraction of a second, the page switches to a search that always returns a valid draw but is not exactly uniform — and says so when it does.
Why no email invitations or links?
Emailing each person their match, or a link that reveals it, needs a server that knows the whole draw. This site has no server for that and you would have to trust it with your family’s names. Passing the phone round or printing slips keeps the draw on your device.
Does it work for Kris Kringle, Wichteln or an office gift exchange?
Yes — Secret Santa, Kris Kringle and Wichteln are the same exchange under different names: everyone gives to one person and receives from another. A white elephant or Yankee swap is a different game, where gifts are stolen rather than drawn, so there is no pairing to generate.
Is anything uploaded?
No. The names, the exclusions, the draw and the slips are all handled in your browser. The only thing kept is the saved draw on this device, so you can return to it — Delete saved draw erases it.