Secret Santa Generator
Draw Secret Santa assignments locally — nobody draws themselves, optional exclusions (partners, last year's pairings), and nothing leaves your device.
Loading calculator…
What this tool does
Draw Secret Santa assignments locally — nobody draws themselves, optional exclusions (partners, last year's pairings), and nothing leaves your device. Exclusions are one-directional: 'Alex > Priya' stops Alex drawing Priya but does not stop Priya drawing Alex — add a second line for both directions. At least 2 participants are required.
How to use the Secret Santa Generator
- Enter or select participants (one per line).
- Enter or select exclusions — one per line as giver > receiver (optional).
- Read the calculated result; change any measurement to compare alternatives.
Formula
A derangement is found by rejection sampling: the list is crypto-shuffled and checked — nobody may draw themselves and no excluded giver→receiver pair may occur. Shuffles repeat (up to 5,000 attempts) until every rule passes, which keeps every valid assignment equally likely.
- names
- Participants (one per line)
- exclusions
- Exclusions — one per line as Giver > Receiver (optional)
Exclusions are one-directional: 'Alex > Priya' stops Alex drawing Priya but does not stop Priya drawing Alex — add a second line for both directions. At least 2 participants are required.
Worked example
Sample draw: with Alex, Priya, Jordan, Sam, Taylor and Casey playing, one valid draw might pair Alex → Jordan, Priya → Casey, Jordan → Alex, Sam → Priya, Taylor → Sam and Casey → Taylor. Nobody has themselves, and any exclusions you list — say partners who must not draw each other — are never paired.
Inputs
- Participants (one per line)Alex Priya Jordan Sam Taylor Casey
- Exclusions — one per line as Giver > Receiver (optional)
Result
- Random resultA fresh cryptographic result is generated locally in the calculator above.
Results explained
- Assignments drawn
- Assignments drawn from the formula above. Exclusions are one-directional: 'Alex > Priya' stops Alex drawing Priya but does not stop Priya drawing Alex — add a second line for both directions. At least 2 participants are required.
- Participants
- Participants from the formula above. Exclusions are one-directional: 'Alex > Priya' stops Alex drawing Priya but does not stop Priya drawing Alex — add a second line for both directions. At least 2 participants are required.
- Exclusions applied
- Exclusions applied from the formula above. Exclusions are one-directional: 'Alex > Priya' stops Alex drawing Priya but does not stop Priya drawing Alex — add a second line for both directions. At least 2 participants are required.
Frequently asked questions
The generator shuffles the participant list with cryptographic randomness and checks the result: nobody is assigned to themselves and no excluded pair occurs. If a shuffle fails any rule it is discarded and a new one is tried, up to 5,000 times — so the assignment you get is a uniformly random valid draw.
Write one exclusion per line as Giver > Receiver, for example 'Alex > Priya' means Alex must not be assigned Priya. Names must match the participant list. Exclusions are one-way unless you add the reverse line too — couples usually need both directions.
The exclusions rule out every derangement — for example three people who all exclude each other. Loosen an exclusion or add participants and try again. The error is honest: the tool never falls back to breaking a rule or letting someone draw themselves.
Nowhere. The draw runs in your browser, no account or server is involved, and closing the tab erases it. Nothing you enter is uploaded or stored — the draw happens entirely in this browser tab and the list disappears when you close it.
On a shared screen, have everyone look away (or pass the device) while one person reads only their own line of the giver → receiver table — the table is why this page suggests one-at-a-time reveal. For a fully blind draw, the organiser can screenshot or copy each row to its giver privately.
Never. A valid Secret Santa assignment is a derangement — a shuffle with no fixed points — and the checker rejects any shuffle where a name lines up with itself.