Secret Santa Generator — Free, No Emails or Sign-up

A Secret Santa name draw that runs entirely on your phone. Add everyone taking part, mark any pairs who shouldn't draw each other (couples, housemates), set a budget and exchange date, then draw. Each person gets a private link or QR code that shows only their own match, so nobody needs an account and no email addresses are collected. Groups are saved on your device, so next year you can redraw the same group and avoid repeating last year's pairs.

How it works

  1. Name the group and add everyone taking part.
  2. Optionally tap two names to keep them apart, and add a budget, exchange date and note.
  3. Tap Draw names. Nobody can draw themselves, and the rules you set are always respected.
  4. Share each person's private link, show their QR code, or pass the phone round so each person sees only their own match.

Why a fair draw is harder than it looks

A Secret Santa draw is a shuffle where nobody gets their own name, which mathematicians call a derangement. The number of valid draws grows quickly: 2 for two people (a swap), 9 for four, 44 for five and 265 for six. As the group gets larger, about 36.8% (1 / e) of random shuffles are valid, which is why the simple approach of shuffling again until nobody has themselves works well when there are no other rules.

Extra rules change this. Keeping couples apart, banning two people from drawing each other, and avoiding last year's pairs all remove possible matches. The tool keeps picking random matches until a valid set turns up, which makes every valid outcome equally likely, and if that keeps failing it switches to a systematic backtracking search. It also checks up front whether a valid draw can exist at all, using a bipartite-matching test, so impossible setups fail immediately with a plain explanation instead of looping.

An impossible setup, and how the tool catches it

Imagine three people, A, B and C, where A and B are a couple and must not draw each other. A can only draw C and B can only draw C, but C can only be given to one of them. Each person has an option, yet they cannot all be satisfied at once. This is exactly the kind of case the matching check detects, and the tool tells you which rule to relax.

Randomness and privacy

Random choices come from your browser's cryptographic random number generator (crypto.getRandomValues), not from the weaker Math.random. There is no server, so the result of the draw lives only in the links you share. Each person's match is stored in the part of the link after the # sign, which browsers never send to a website's server, and is scrambled with a random salt so it does not show up in a chat app's link preview.

That scrambling is obfuscation, not encryption. Someone who is determined and technically skilled, and who has been given a link, could decode the match in that link, but not anyone else's. That is the trade-off for not collecting email addresses or running a server, and it is why the organiser never sees the full list.

Running a good exchange

Agree the budget and the date before you draw, and add them to the group so each person's reveal page shows them. If someone drops out, use Edit and redraw, and remember that the new draw replaces the old one, so you will need to send everyone their new link. Groups are saved on your device and keep the last five draws, so next year you can redraw the same group and avoid repeating the previous pairs.

Frequently asked questions

Do I need everyone's email address?

No. You send each person their own link through whatever you already use, like WhatsApp, Messenger, Slack, Teams or text, or let them scan a QR code. Nobody signs up and nothing is emailed.

Can the organiser see who got who?

The organiser never sees the full list, only a Share button per person. Each person's match is stored inside their own link, scrambled so it doesn't show in link previews. That scrambling is not encryption, though: someone determined to decode a link they hold could read it. Since there is no server, there is nowhere else to keep the match, which is the trade-off for not collecting emails.

How do I stop couples drawing each other?

In the 'Who shouldn't draw each other?' box, tap one name and then the other. That pair is kept apart in both directions. If you add so many rules that no fair draw is possible, the tool tells you which rule to relax.

Can I avoid getting the same person as last year?

Yes. Open last year's group and choose Draw again. 'Avoid the previous draw's pairs' is on by default, so nobody gets the same person twice in a row.

Is the draw really random?

Yes. It uses your browser's cryptographic random number generator, and every valid combination of matches is equally likely. The only things that change the odds are the rules you set.

What if I need to redraw?

Tap Edit & redraw. The new draw replaces the old one, so any links you already sent will still show the old match. Re-send everyone's new link.