Secret Santa Generator
Draw names for your gift exchange with exclusions, per-person wishlists, and an organizer view. Names stay on this device — nothing is uploaded.
1. Add your group
One name per row. Click a row's ⋯ to exclude a couple or add a wishlist note.
2. Draw names
Quick Answer
A secret santa generator draws one gift recipient for each person in your group at random, so everyone gives one gift and receives one. Add everyone’s name, optionally mark couples or roommates who shouldn’t draw each other, and the draw pairs every giver with an allowed receiver using a cryptographic random shuffle — as fair as names in a hat, without the hat or the paper scraps. Reveal cards let each person check their match privately on one shared phone, and the organizer view shows the full list.
How It Works
Add every person in your gift exchange — each on their own row
Use the ⋯ menu to exclude couples or roommates who shouldn't draw each other
Press "Draw names" — the crypto-fair shuffle assigns everyone a receiver instantly
Pass the phone: each person taps their name to reveal only their own match
Key Facts
- Unlimited participants — paste a roster of 3 to 200 names
- Two-way exclusions: mark couples, roommates, or family pairs that must not match
- Crypto-fair draw via crypto.getRandomValues — every valid assignment is equally likely
- Impossible setups (like 3 people who all can’t draw each other) are detected before the draw
- Per-person reveal cards so the group can share one phone without spoiling matches
- Organizer view with the complete giver → receiver list for tracking
- Roster auto-saves in your browser (localStorage) so you can rerun a draw anytime
- 100% client-side: no accounts, no emails sent, nothing leaves your device
Frequently Asked Questions
How does a secret santa draw work?
Each person’s name goes into the draw once. The generator gives every person one random receiver, forming a single loop: everyone gives one gift and receives one. Unlike drawing folded paper from a bowl, the digital draw checks its own work — nobody can draw themselves, and excluded pairs are never matched.
Can I make sure couples don’t draw each other?
Yes. Open the ⋯ menu next to any name and list the people they shouldn’t match. Exclusions are two-way — if Sophia can’t draw Liam, Liam can’t draw Sophia — which matches how couples exclusions actually work. Add as many exclusions per person as you need.
What if the draw says my exclusions are impossible?
That happens when the exclusions are too tight for any valid loop — the classic case is three people who all can’t draw each other: whoever is left must draw one of them. Remove or loosen one exclusion (or add more people to the group) and the draw will work.
Is it actually random and fair?
The draw shuffles the roster with a Fisher–Yates shuffle powered by crypto.getRandomValues, your browser’s cryptographic random source — the same class of randomness used to generate encryption keys. Every valid assignment is equally likely, and the code re-verifies every draw against the rules before showing it.
How do people find out who they draw?
Gather everyone (in person or on a video call) and tap through the reveal cards one at a time — each person taps their own name to see their match, then closes it before passing the phone. The organizer view underneath shows the complete list if you’re coordinating gift budgets or following up.
Do you send emails or need accounts?
No. Many generators email each participant or require sign-ups; this one deliberately doesn’t. Names and wishlists live only in your browser’s localStorage, the draw runs entirely on your device, and nothing is transmitted anywhere — so it also works offline once loaded.