Generator Tools
Secret Santa Generator
Draw Secret Santa names in your browser with couple exclusions, last-year repeat blocking, and private reveal links nobody else can see.
Names stay on your device. Emails (if any) are only used to label shareable reveal links so it is easy to copy the right link to the right person.
Draw rules
One pair per line. Use a comma, &, or the word and. Households of three or more can be on one line.
0 forbidden pairs.
Draw
Add at least two participants to start.
How the draw is built
- Single gift chain. When possible the assignment is a Hamiltonian cycle: A -> B -> C -> ... -> A. That guarantees nobody ends up in a two-person trade like A gives to B and B gives to A, which is the most common failed-draw complaint.
- Constraint matching. If the chain cannot be built because exclusions are very tight, the tool falls back to a random valid permutation. The strategy that was used is shown above so you know which one ran.
- Unbiased random. Shuffling uses crypto.getRandomValues with rejection sampling, so every valid draw is equally likely.
How to use
- Paste participant names into the left box, one per line. Add an email after a comma if you want to label reveal links.
- Add exclusions on the right: couples, roommates, parents and children, or anyone who should not draw each other. Use a comma, &, or the word and.
- Optionally expand Block last year's pairings and paste last year's draw in the form Giver -> Recipient to prevent repeats and reverses.
- Read the assignment table at the bottom. Tap Redraw for a fresh chain if you want to reshuffle without changing the rules.
- Copy individual reveal links to send privately, or use Copy plain text, Copy Markdown, or Copy CSV for the organizer's records.
- When a giver opens their link, the page shows a tap-to-reveal gate that only displays their assigned recipient.
About this tool
Secret Santa Generator runs a complete gift-exchange draw in your browser. Paste the participants one per line (optionally with an email after a comma), add any couple, household, or co-worker pairs that must not draw each other, and the tool builds an assignment where every person gives one gift and receives one gift. The draw uses a single Hamiltonian cycle when possible, the form A gives to B, B gives to C, C gives to D, and the last person closes the loop back to A, which prevents the common failure mode of two people simply trading gifts. When constraints are very tight the algorithm falls back to a constraint-respecting random matching and shows which strategy was used so the result is never silent magic. You can also paste last year's pairings in the form Giver -> Recipient, and the tool blocks both those pairings and their reverses so this year does not echo last year. Each giver gets a private reveal link whose payload lives in the URL fragment after the # sign, which browsers do not transmit to servers, so the recipient name stays between the organizer and the giver who clicks the link. The reveal page is a focused tap-to-reveal gate, so someone glancing at the screen does not spoil the surprise. The organizer view shows every assignment in a table with copy buttons for plain text, Markdown, CSV, and a one-click copy for each individual reveal link, ready to drop into Slack, WhatsApp, iMessage, or email. Shuffling uses crypto.getRandomValues with rejection sampling, so every valid draw is equally likely; there is no Math.random bias. Useful for office Secret Santa, family Christmas exchanges, dorm and apartment gift swaps, remote team holiday games, White Elephant and Yankee Swap setup, Kris Kringle draws, birthday-month gift circles, and any group where one giver maps to one recipient. Nothing about your group leaves your device: names, emails, exclusions, and last year's history all live in this tab only, and the reveal links carry their assignments inside the URL fragment that browsers keep on the device.
Free to use. Works in your browser. No signup, no login.
Related tools
You may also like
Random Team Generator
Split a list of names into balanced random teams or fixed-size groups.
Open tool
GeneratorList Randomizer
Shuffle items, draw winners, or build random teams from any list.
Open tool
GeneratorDecision Wheel
Animated wheel that picks one item fairly. Remove-winner mode for raffles.
Open tool
GeneratorRandom Number Generator
Random integers, decimals, dice rolls, and list picks with unique-only and sort.
Open tool
GeneratorRandom String Generator
Random strings with hex, base32, base58, base62, base64 URL-safe, or a custom alphabet.
Open tool