How the draw works
The algorithm builds a random derangement (a permutation with no fixed points — nobody draws themselves) that respects every exclusion rule. Up to 200 retry attempts are made; if a valid pairing can't be found (over-constrained rules, e.g. 4 people all excluding each other), the page tells you and asks you to relax a rule.
Exclusion rule syntax
One rule per line, in the form Name1 != Name2 or Name1 - Name2. Whitespace and case are flexible. With the bidirectional toggle on, Asha != Bharat also prevents Bharat from drawing Asha — which is the typical "couple shouldn't be paired" use case.
Reveal flow
- Click Draw pairings. With "Hide assignments" on, each recipient is masked.
- Pass the device around. Each person clicks their own "from" name's card to reveal who they draw.
- Or click Print reveal cards — each person gets a folded slip with only their assignment.
Privacy
Names and pairings stay in your browser. Refresh the page and they're gone. Use Print reveal cards for offline keepsakes, or screenshot before navigating away.