Secret Santa Name Match Assignment Engine
Distribute party assignments privately without leaking matches. Guaranteed derangement shuffle, couple exclusions, and a click-to-reveal vault that auto-relocks in 10 seconds. Nothing ever leaves your browser.
No exclusion pairs added yet.
The Complete Guide to Secure Secret Santa Name Assignment
Organizing a Secret Santa exchange sounds simple, but doing it fairly and privately is harder than it looks. Paper slips can be peeked at, email-based services store participant lists on remote servers, and a casual phone-shuffle often lands someone with their own name. This engine solves all three problems using proven mathematical algorithms and a fully browser-based privacy architecture.
How to Use This Tool
Type each participant's name on a separate line in the input box at the top. The engine updates the participant count in real time as you type. If you have couples or family members who already buy gifts for each other independently, click "Add Exclusion Pairs" and select the names that should never be matched together. When the group is ready, click "Draw Secret Names." The Secret Vault appears below with a locked gift box for every participant.
Pass the device around the room to each person one at a time. Each person finds their own name on the grid and taps it. Their match appears for exactly 10 seconds, then the box automatically relocks. Once the device is passed to the next person, the previous result is completely hidden from view.
Why the Derangement Algorithm Matters
A naive shuffle might assign Alice to Alice or Bob to Bob. The technical term for a permutation where no element lands in its original position is a "derangement." The probability that any given random shuffle produces a valid derangement approaches 1/e (approximately 36.8%) as group size grows. Rather than leaving this to chance, this engine detects any self-match and discards the entire shuffle, then immediately regenerates. This continues automatically until zero self-assignments remain, no matter how many attempts are needed.
Fisher-Yates Shuffle: Why It Beats the Alternatives
Sorting by random values (such as attaching Math.random() to each name) produces non-uniform distributions where some permutations appear more frequently than others. This introduces hidden bias into the draw. The Fisher-Yates algorithm avoids this entirely by walking backward through the participant list and swapping each name with a randomly chosen earlier position. The mathematical result is that every permutation of the list is exactly equally probable, making it the correct algorithm for a genuinely fair gift exchange.
Privacy by Architecture
Many popular Secret Santa web services process participant names on their own servers. This means a database entry exists containing every assignment, and an administrator could theoretically access the full results. This engine processes everything inside your browser's JavaScript runtime only. No name, no assignment, and no event metadata ever leaves your device. Closing the tab or clearing the page destroys all match data permanently, with no recovery path.
How to Handle Exclusions Without Breaking the Draw
Adding too many exclusion pairs in a small group can make it mathematically impossible to find a valid derangement. If no valid assignment exists after an extended search, the engine reports a failure rather than silently returning a broken result. As a practical guideline, avoid excluding more than one-third of all possible pairs in groups smaller than 6 people. Adding one or two more participants is almost always the simplest fix when the engine cannot find a valid draw.