Secret Santa Generator — fair draw with exclusions
Enter names (one per line), optional 'cannot give to' exclusions, and draw. Reveal codes keep it secret until the day.
Quick answer: Paste names and draw a fair Secret Santa pairing where nobody gets themselves (a proper derangement), with exclusions like couples or last year's pair. Runs locally — names never leave your browser.
Quick answer: a fair draw in one paste
Secret Santa generator takes your list of names, shuffles it into gift-giving pairs where nobody draws themselves, and respects exclusions you set — couples, siblings, last year's pairings. Paste names, add no: lines, hit draw, share the result. Free, no signup, and the draw runs entirely in your browser, so the list never leaves the device.
The math under the hood is a derangement: a shuffled assignment with no fixed points, so every person gives exactly one gift and receives exactly one. A hat draw can't promise that — someone always fishes out their own name and you reshuffle until morale drops.
A worked example: the 8-person office draw
Eight names go in: Ali, Hina, Sam, Priya, Tom, Grace, Omar, Zara. Two exclusions: Ali no:Hina + Hina no:Ali (a couple, both directions) and Sam no:Priya (they drew each other last year). One valid result:
- Ali → Omar · Omar → Hina · Hina → Sam · Sam → Zara · Zara → Ali
- Tom → Priya · Priya → Grace · Grace → Tom
Every check passes: nobody draws themselves, Ali and Hina are kept apart, Sam never gives to Priya. Two separate gift cycles is normal and valid — the tool redraws (up to 200 attempts) only when an exclusion is violated. If a valid pairing is mathematically impossible — say Ali is excluded from everyone else — it tells you outright instead of looping. Once the draw is done, the gift idea finder narrows presents by budget and interests, and the wheel picker settles who hosts.
Hat draw vs spreadsheet vs apps vs this generator
| Method | Self-draw possible? | Exclusions? | Signup | Private? |
|---|---|---|---|---|
| Names in a hat | Yes — reshuffle time | No | No | Yes |
| Spreadsheet formulas | Only if built carefully | Manual, fragile | No | Yes |
| Group apps | No | Some | Usually yes | No — server-side |
| This generator | No — derangement by design | Yes, per pair | No | Yes — in-browser |
How to use
- Paste your group's names into the box, one name per line (at least three names are needed).
- To keep two people from drawing each other, add no: plus the name on the same line, for example 'Sara no:Omar'.
- Press the Draw pairs button to run the draw.
- Check the table it produces: each giver is matched to a receiver - never themselves and never an excluded person.
- If you see the no-valid-pairing message, relax or remove one exclusion and draw again.
- Share each person's assignment privately - copy their line into a message or send a cropped screenshot, since the full table is visible only on your screen.
About this tool
A fair draw is a derangement — a permutation with no fixed points — which naive 'pick a random name' gets wrong surprisingly often. This tool builds the pairing with retry-backtracking so exclusions (partners, repeat pairs) are respected, and gives each giver a private reveal code so the organizer doesn't have to DM everyone. Everything happens in your browser; share the results list, not your data.
Drawing names from a hat fails in predictable ways: someone draws themselves, a couple draws each other, and the remote cousin never gets a slip at all. This generator builds what mathematicians call a derangement, an assignment where nobody is paired with themselves, and it respects exclusions you type on the same line as a name using the no: prefix, so partners or last year's pairs never meet again. It needs at least three names, redraws until every rule holds, and tells you plainly when a legal pairing is impossible.
The organizer sees the full giver-to-receiver table on their screen; there are no individual reveal links, so share each person's assignment by copying their line into a private message or sending one cropped screenshot each. Two habits prevent trouble: write exclusions in both directions for mutual rules, since no: blocks only one pairing, and keep spelling consistent with the list. If the tool reports that no valid pairing exists, your exclusions have made a legal draw mathematically impossible; relax one and redraw. Nothing is stored, so each visit starts fresh and a redraw is always an option.
TL;DR
Paste names, add exclusions, draw. You get a proper derangement — no self-pairs, exclusions respected, free and private (nothing leaves your browser). Works from 3 people up. Couples need BOTH directions blocked: Ali no:Hina and Hina no:Ali.
FAQ
How does the draw stay fair?
How do exclusions work?
What if no valid pairing exists?
How do I keep the assignments secret?
Do you store the names I enter?
When does a proper Secret Santa pairing matter most?
Can two people draw each other?
What's the smallest group that works?
Rate this tool
Your rating stays in this browser (local storage) — nothing is sent to any server.
Related tools
Gift Idea Finder
Gifts & Occasions
💝Wedding Gift Amount Calculator
Gifts & Occasions
💞Anniversary Milestone Gift Finder
Gifts & Occasions
🍼Baby Shower Budget Calculator
Gifts & Occasions
🎪Event Budget Allocator
Gifts & Occasions
🍽️RSVP Headcount → Catering Quantities
Gifts & Occasions
👰Wedding Day-Of Timeline Generator
Gifts & Occasions
👶Baby Gender Predictor (Fun)
Gifts & Occasions
The complete secret santa generator guide
Prefer the long version — a worked example, the mistakes people actually make, and answers to real questions? The blog guide Secret Santa Generator — Complete Guide, Mistakes & FAQ covers all of it step by step.
Browse the collection: Gifts & Occasions — All 9 Free Online Tools