Random Generators

Secret Santa Generator

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.

Free online tool

Loading tool…

Set up a gift exchange

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.

Local reveal

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.

GET STARTED

How to use the Secret Santa Generator

  1. 01

    Enter 2–100 unique participant names, one per line. Add initials when names repeat.

  2. 02

    Optionally add one Giver -> Recipient exclusion per line. Add the reverse line when the exclusion must work both ways.

  3. 03

    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.

Examples

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.

Diagnose an impossible group

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.

Finding a valid complete matching

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.

What randomness does and does not promise

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.

Local reveal is a convenience

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.

Common questions

Will the tool email each person?

No. It does not collect email addresses or send messages. The organizer must share assignments using their own trusted process.

Can I exclude an entire household?

Yes. Enter every directed pair that should be blocked. For three household members, block both directions for each pair.

Does generating again erase the old draw?

Yes. The latest valid assignment replaces the previous one. The session counter records how many successful draws were made, without keeping previous assignment lists.

Are three-person cycles guaranteed?

No. Any valid cycle structure is allowed, including two-person reciprocal pairs. The tool enforces only no self-matches and the exclusions you provide.

Sources & references