Secret Santa Drawer
Pair gift-givers and receivers with optional exclusion rules.
Overview
The Secret Santa Drawer pairs gift-givers and receivers for a Secret Santa exchange, with optional exclusion rules so partners do not draw each other, parents do not draw their own kids, and the office team does not end up with awkward pairings. Paste the participants, add any exclusions, and the drawer returns a valid set of pairs.
It is built to replace the hat-and-paper method that always ends with someone drawing their own name and the whole room having to start over. The drawer guarantees a valid permutation in one click, with no human seeing anyone else's pairing.
How it works
You enter participants by name and optionally pair them with exclusion partners. The algorithm builds a derangement — a permutation where nobody is paired with themselves — that also respects your exclusion rules. If your exclusions make a valid draw impossible, the drawer reports it instead of returning an invalid pairing.
Each pairing is shown in private (or copied to clipboard one at a time), so you can send each person their own assignment without anyone seeing the full list. Rerun any time someone drops out.
Examples
- Five coworkers, no exclusions: a valid round of five pairings appears.
- A family of six with three couples excluded: the drawer respects the rule so no partner draws their partner.
- A friend group with last year's pairings excluded: the drawer avoids any repeats.
- A team where two members joined late: rerun the draw with the updated list.
FAQ
How do exclusions work?
You mark pairs that should not be matched. The algorithm honours the rules when building the permutation.
What if no valid draw exists?
If the exclusions are too tight, the drawer reports it. Remove a rule or rebalance and rerun.
Can I email each person their pairing?
The drawer shows pairings on screen. You can copy each one privately and send via your preferred channel.
Does it remember last year's draw?
No. Nothing is stored. If you want to exclude last year's pairs, paste them in as exclusions.
Can I include a wish list?
The drawer handles assignment, not wish lists. Maintain those separately in a shared doc.