Code tool

Secret Santa

Draw local gift-exchange assignments with bidirectional exclusions, a budget note, and reveal links.

In-browser processingNo account requiredPrivacy details ↗

Secret Santa

Names and assignments are processed locally; this tool never uploads or stores them. Reveal links contain readable encoded data in the URL fragment (#). They are not encrypted, authenticated, or access-controlled. Anyone holding a link can reveal it and forward it. Browser history, clipboard, and recipients may retain shared links.

Blank lines and exact duplicate names are removed. Use distinct names for different people. 2–200 participants; 100 characters per name.

Bidirectional exclusions

Enter participants and optional exclusion pairs.

A QUICK WALKTHROUGH

How to use this tool

  1. Enter one participant per line. Blank lines and exact duplicates are removed.
  2. Add pairs that must not draw each other and an optional budget note.
  3. Draw names, copy each reveal link for its participant, or show the organizer list.

Bounded random draw

Web Crypto supplies unbiased Fisher–Yates shuffles. The tool tries at most 500 complete arrangements, then uses randomized bipartite matching to find a valid result or prove the constraints infeasible. The fallback does not sample all valid matchings uniformly. Nobody draws themselves and every person gives and receives once.

Readable links, local processing

Names and assignments are never uploaded or stored by this tool. Each reveal link holds one encoded assignment and the budget in its URL fragment. Encoding is not encryption: links have no authentication or access control, and anyone holding one can reveal or forward it. Browser history, clipboard, and recipients can retain links.

Input limits

2–200 distinct participants, up to 100 characters per name, 25,000 characters in the list, 1,000 exclusion pairs, and a 1,000-character budget note. Matching is bounded; infeasible exclusions produce an error.

GOOD TO KNOW

Common questions

Can someone else open a reveal link?

Yes. A link is readable by anyone who has it, including the organizer. Send each participant only their own link.