Secret Santa · sealed links

An online Secret Santa generator, without accounts or email addresses

Type the names, set your rules, and get one sealed link per person to send however you already talk to them. Server-backed tools ask you to trust that their database won't show the organizer. We don't have a database. That difference is checkable: turn off your wifi and the draw still works.

No account. No email addresses — not yours, not your friends'.

People Rulesnone Possible draws Method Sealed withlink key Network since first name

One name per line. Add a hint after a vertical bar and whoever draws that person sees it — you typed it, so you can see it too. The pairing is the secret, not the wish list.

Households and couples

Nobody gives to anyone they live with. One household per row, names separated by commas. A household can never be more than half the group.

Blocked pairings

Usually last year's result. Tick “both ways” to block it in both directions.

How each link is sealed
0 of 160 bytes per link

Let someone else run the draw

The honest way to keep the organizer out of it without any cryptography: hand the whole thing to someone who isn't playing. This makes a link carrying your names, your rules and any hints you typed — never a pairing, because there isn't one yet — for them to open and draw from. Whoever holds that link reads all of it, so send it to your delegate and nobody else.

The precondition is real: your delegate has to be able to message everyone, and in a family draw a spouse is usually a participant.

How this generator works

You type names; nothing is transmitted by this site. The whole draw runs with your wifi switched off. Your browser builds a table of who may give to whom — self-draws removed always, households and blocked pairings removed by your rules — then draws a uniform random derangement: a pairing where everyone gives once, receives once, and nobody draws themselves. It shuffles with your browser's cryptographic random number generator, checks the result against every rule, and throws the whole shuffle away if anything breaks. Conditioning a uniform distribution on a rule leaves it uniform over whatever survives, so the draw you keep is exactly uniform over the draws your rules allow. There is no seed, deliberately: a printed seed plus your name list would reconstruct the entire draw.

Each result is then sealed on its own. The opener's name, who they drew, your event label and note, and any hint are packed into a fixed-length block, encrypted with a fresh key made for that one link, and written into the part of a URL after the #. Browsers never send that part to a web server, so it is not in our logs, not in our host's logs, and not in a chat app's link-preview fetch. Every link in a draw is padded to the same length, which is not tidiness: otherwise a link's length would give away the length of the recipient's name, and on a twelve-name roster that alone narrows 176,214,841 possible draws to a few hundred with nothing opened.

Where it stops, stated because the tool reports it rather than hiding it. Exclusions can make a draw impossible, and the readout says so before you press anything — a household can never be more than half the group, because everyone in it gives to someone outside it. On very tightly constrained lists shuffle-and-reject would run impractically long, so after twenty thousand attempts the tool builds one valid pairing directly and randomises it with swaps. That output obeys every rule, but we cannot prove it gives every valid draw an even chance, so the readout says constrained rather than uniform — the only place either word means anything. And uniform across whole draws is not the same as every person being equally likely to draw every other: lopsided rules skew those odds, and no draw method can undo that.

Frequently asked questions

Can the organizer see who drew whom?
In a Quick draw, this tool has no screen, button, or export anywhere that shows the organizer who drew whom, and there is no database that could. What we won't claim is that the organizer can't look. They hand out every link, so they could open one — deliberately, one person at a time, past a screen with someone else's name on it. A sealed envelope, not a vault: it stops accidents and stops a glance, and it does not stop the person carrying it. If that matters, use a Locked draw — sealed to a key the recipient's own device made — or hand the draw to someone who isn't playing.
Do I need everyone's email address?
No, and there is nowhere to put one. You type names, the browser draws, and you get one sealed link per person to send however you already talk to them. Every server-backed alternative collects addresses because it has to: something has to do the sending. We don't send anything, so we never ask. The trade is printed on the page: 25 people means 25 separate messages.
What happens if someone loses their link?
While the draw tab is still open, the page can re-seal that one person's link without touching anyone else's. Once you close the tab that repair is gone, so keep the copy the tool makes you take. If it is already too late, the cheapest fix is a redraw: one announcement, a new draw ID, and nobody has to admit who they had.
Can I stop couples from drawing each other?
Yes. Add a household for anyone who lives together and nobody in it draws anyone else in it, in either direction. You can also block one specific pairing, in one direction or both, which is how most people record last year's result. The readout tells you before you press anything whether your rules still leave a draw possible, and if they don't it names the rule that broke it rather than just refusing.
Is the draw actually random?
It is uniformly random over every assignment your rules allow: all 1,334,961 possibilities for ten people with no exclusions are equally likely. The party shortcut of shuffling everyone into a circle is not — it can never produce a draw where two people simply swap. The readout prints which method produced your result and how many shuffles it took, and the maths and its test suite are published.

Related