Secret Santa picker
Run a fair Secret Santa draw in seconds. Paste your group, one name per line, and get assignments where nobody is ever matched to themselves — then reveal each pairing one tap at a time so it stays a surprise. It is built for office gift exchanges, family Christmases, and any group draw.
How it works
A valid Secret Santa draw is a derangement — a permutation in which no element appears in its original position. In plain terms: every giver is assigned someone else, and everyone receives from exactly one person. No one is left out, and no one draws themselves.
The tool:
- Removes blank lines and flags duplicate names so each person appears exactly once.
- Shuffles the list using a Fisher–Yates shuffle driven by the browser’s cryptographically secure
crypto.getRandomValues— notMath.random(), which has known biases on small lists. - Checks that no person is paired with themselves. If the shuffle lands on a fixed point (Alex → Alex), it reshuffles until the result is a clean derangement.
Each pairing stays hidden until you tap to reveal it, so you can run the draw on one screen and hand the device to each participant to see their assignment privately.
Running the draw fairly in practice
Who runs the draw? The organiser typically runs the draw and reveals each result to the relevant participant. Using the one-at-a-time reveal, the organiser can hand the device or screen to each person individually so no one else sees their assignment. The organiser themselves must take care not to see their own result before everyone has had a turn.
Exclusions (who cannot draw whom): The tool currently draws without restrictions. If you need to exclude certain pairs — for example, couples in a family draw, or managers drawing their direct reports — generate a few times and check, or arrange those manually around the draw.
Minimum group size: Two people is the absolute minimum, in which case each simply draws the other. In practice, three or more is where the draw feels meaningful. The math works for any size.
Example
Enter four names:
Alex
Sam
Jordan
Riley
A possible valid draw: Alex → Sam, Sam → Jordan, Jordan → Riley, Riley → Alex. Notice that the chain visits everyone exactly once and nobody draws themselves. Another valid draw might be Alex → Jordan, Sam → Riley, Jordan → Alex, Riley → Sam — same rules, different pairings. Re-running produces a fresh result each time.
Why not just pull names from a hat?
A physical hat draw requires someone to manage it — which means the organiser usually draws last and may know who got whom, or a draw might accidentally land on the same person twice before rules are checked. A derangement algorithm guarantees correctness on the first draw, and the one-at-a-time digital reveal means no physical shuffle is needed. It is also more useful for distributed teams or family groups who are not in the same room.
The draw runs entirely in your browser. No names are uploaded, saved, or shared — close the tab and the data is gone.