Secret Santa
Create a Secret Santa assignment where each person gives a gift to exactly one other person and receives from exactly one person, ensuring no one draws themselves.
Also known as: gift exchange · white elephant · yankee swap
seeded · synthetic data
Presets
Output
About this tool, tips & examples
What it does
The Secret Santa generator draws a fair gift-exchange assignment: every participant gives exactly one gift and receives exactly one, and nobody draws themselves — guaranteed by construction, not by rerolling until it works. Paste the names, generate, and export the pairings. Seeded, so the organizer can regenerate the assignment if the list gets lost.
Common use cases
- Office and family gift exchanges — the classic holiday draw without paper slips and “I got myself” redraws (presets for small and larger groups).
- Remote teams — export the pairings and message each person their assignment privately.
- Kris Kringle / White Elephant variants — any exchange that needs a fair giver→receiver rotation.
- Non-gift pairings — the same math assigns pen pals, code reviewers, or appreciation-note writers.
Settings
- Participants — one name per line; blank lines are ignored.
- Seed — the same seed and list regenerate the identical assignment. The organizer keeps the seed; if someone forgets their draw, it’s recoverable without a redraw.
Privacy note
The draw runs locally in your browser — the participant list is never uploaded. Practical tip: only the organizer should see the full output; send each person just their own assignment to keep the “secret” in Secret Santa.
FAQ
Can someone draw themselves? No — the assignment is a derangement-style rotation: self-assignment is impossible by construction, not just unlikely.
How do I handle couples or exclusions? The generator doesn’t support exclusion rules directly; the pragmatic workaround is regenerating with a new seed until the constraint holds, then keeping that seed.
What if someone joins late? Adding a name changes the whole assignment (that’s unavoidable math) — regenerate with the new list and a fresh seed, and resend assignments.