Exclude a couple
With six participants, add Alex -> Blair and Blair -> Alex to prevent either partner from drawing the other. Self-matches are already excluded automatically.
Build a gift exchange where every participant gives once and receives once. Add directed exclusions for people who should not be matched, then generate a complete valid assignment. Results stay in the open page, with a one-person reveal view and an optional organizer list.
Nobody receives themselves. Add both directions to exclude a couple. Everyone gives once and receives once. Randomized matching finds a valid assignment when one exists; valid complete assignments are not equally likely.
This page does not send emails or save assignments. Reveal is a convenience for passing a trusted device around, not access control: anyone with the page can reveal every assignment. Keep exported files private.
A valid draw will appear here after you generate it.
Inputs and generated results are processed in your browser. These tools do not upload them or persist them in local storage. Copying or downloading creates a record you control.
Enter 2–100 unique participant names, one per line. Add initials when names repeat.
Optionally add one Giver -> Recipient exclusion per line. Add the reverse line when the exclusion must work both ways.
Generate, choose a giver, and reveal their recipient. Hide the result before passing a trusted device along, or explicitly show the organizer list to export.
With six participants, add Alex -> Blair and Blair -> Alex to prevent either partner from drawing the other. Self-matches are already excluded automatically.
With only Alex and Blair, excluding Alex -> Blair leaves Alex no eligible recipient. The tool reports the conflict; trying another random seed cannot solve an impossible assignment.
The generator constructs allowed giver-to-recipient edges, shuffles their order with browser crypto randomness, and finds a complete matching using augmenting paths. It reassigns tentative recipients when needed rather than getting stuck on a greedy choice. It reports when no complete matching exists.
Random choices within the matching algorithm use unbiased integer sampling. However, complete valid assignments are not sampled with equal probability. This is a practical constraint-satisfying gift exchange tool, not a uniform sampler over every possible allowed derangement. Reciprocal pairs are allowed unless exclusions prevent them.
Selecting a participant and revealing a name does not authenticate that person. Anyone with access to the page can select every participant or use the organizer view. No emails are sent, no access links are created, and there is no encrypted participant portal. Only the latest assignment is retained in page memory; editing inputs clears it, and reloading loses it.
No. It does not collect email addresses or send messages. The organizer must share assignments using their own trusted process.
Yes. Enter every directed pair that should be blocked. For three household members, block both directions for each pair.
Yes. The latest valid assignment replaces the previous one. The session counter records how many successful draws were made, without keeping previous assignment lists.
No. Any valid cycle structure is allowed, including two-person reciprocal pairs. The tool enforces only no self-matches and the exclusions you provide.