Generate valid Secret Santa assignments for 3–100 people with exclusions, individual reveals and private printable cards.
Plan the exchange. Generate every assignment. Reveal one card at a time.
01 / Participants
0 entered · 3–100 unique names required
Changing names clears exclusions and earlier assignments. Give people with the same name distinct labels.
02 / Exclusions (Optional)
Self-assignments are already prevented. Add partners or other pairs only if needed.
No extra exclusions. Everyone can draw any other participant.
03 / Generate Assignments
Add 3–100 valid participants above to get started.
Optional, local-only details for individual cards. They do not affect the assignments and are not saved after a refresh.
04 / Private Reveal
Select the participant, hand them the device, and let them press Reveal. Press Hide before passing it on. Switching participants hides the previous card immediately.
Enter your values locally; no inputs are uploaded.
Check validation feedback before reviewing the browser-generated result.
Review the explanation, copy supported outputs or reset the workspace.
Enter or select the applicable settings, interact or generate locally, then review the result and explicitly reveal, copy, print or export as appropriate.
Generate valid Secret Santa assignments for 3–100 people with exclusions, individual reveals and private printable cards. Unique names, no self-assignment and exactly one giver per recipient. Directed exclusions or mutual partner exclusions feed an exact bipartite matcher; secure browser shuffles randomize choices. Impossible constraints report empty candidate sets or a participant group with too few reachable recipients. Randomized matching is not uniform sampling over every possible complete assignment. The full assignment list is never displayed by default; reveal one person at a time, hide on participant changes/window blur, and download/open only that person’s self-contained HTML card for native printing. Anyone controlling the tab/devtools can inspect in-memory assignments; this is not authenticated private delivery. Downloaded/printed cards remain on the device. No accounts, email, uploads or persistent storage.
Inputs, random outcomes, participant names, assignments and colors stay in browser memory. No external processing, accounts, emails, server storage or content analytics are used. Reset/unmount clears session state; downloaded or printed files remain on the user’s device. Ordinary page requests may still be logged.
An exact bipartite matching algorithm assigns one allowed recipient to every giver. Self edges and configured exclusions are removed first; the complete result is checked for unique recipients and valid edges before any assignment can be revealed.
Choose a giver who cannot draw a particular recipient. Enable both ways for partners, or disable it for a directed rule. Rules can be removed or cleared. Editing participant names clears earlier rules and assignments to avoid applying them to the wrong people.
Yes. It identifies participants with no eligible recipient or a group that can reach fewer recipients than the group’s size. Relax rules involving that group and generate again. It does not silently omit people or return partial assignments.
Nothing is uploaded or stored on a server, and no full assignment list is displayed by default. Only the selected participant’s card is revealed; switching participant or leaving focus hides it. The organizer or anyone controlling the tab/devtools can inspect memory, so this is not authenticated private delivery.
Yes. Reveal one participant, then download that person’s self-contained HTML card or open it in a new tab for the browser’s Print command. The card includes only that giver and recipient. Keep the screen and downloaded/printed cards private; printing depends on browser/platform support.
Enter 3–100 unique names, up to 100 characters each. Browser crypto securely shuffles matching choices. This produces valid randomized matchings but is not claimed to sample every possible complete assignment uniformly. No accounts, emails, paid services or persistent storage are used.
Generate valid Secret Santa assignments for 3–100 people with exclusions, individual reveals and private printable cards.
Unique names, no self-assignment and exactly one giver per recipient. Directed exclusions or mutual partner exclusions feed an exact bipartite matcher; secure browser shuffles randomize choices. Impossible constraints report empty candidate sets or a participant group with too few reachable recipients. Randomized matching is not uniform sampling over every possible complete assignment. The full assignment list is never displayed by default; reveal one person at a time, hide on participant changes/window blur, and download/open only that person’s self-contained HTML card for native printing. Anyone controlling the tab/devtools can inspect in-memory assignments; this is not authenticated private delivery. Downloaded/printed cards remain on the device. No accounts, email, uploads or persistent storage.
An exact bipartite matching algorithm assigns one allowed recipient to every giver. Self edges and configured exclusions are removed first; the complete result is checked for unique recipients and valid edges before any assignment can be revealed.
Choose a giver who cannot draw a particular recipient. Enable both ways for partners, or disable it for a directed rule. Rules can be removed or cleared. Editing participant names clears earlier rules and assignments to avoid applying them to the wrong people.
Yes. It identifies participants with no eligible recipient or a group that can reach fewer recipients than the group’s size. Relax rules involving that group and generate again. It does not silently omit people or return partial assignments.
Nothing is uploaded or stored on a server, and no full assignment list is displayed by default. Only the selected participant’s card is revealed; switching participant or leaving focus hides it. The organizer or anyone controlling the tab/devtools can inspect memory, so this is not authenticated private delivery.
Yes. Reveal one participant, then download that person’s self-contained HTML card or open it in a new tab for the browser’s Print command. The card includes only that giver and recipient. Keep the screen and downloaded/printed cards private; printing depends on browser/platform support.
Enter 3–100 unique names, up to 100 characters each. Browser crypto securely shuffles matching choices. This produces valid randomized matchings but is not claimed to sample every possible complete assignment uniformly. No accounts, emails, paid services or persistent storage are used.