Secret Santa Generator

Add your names, keep couples apart, set a budget, then send each person a private link that shows only who they drew. No emails, no sign-up.

Who is playing?

Type a name on each row. People who share a household label never draw each other. Use Cannot draw to block any other pair. Empty rows are skipped.

    Paste a list of names

    Your list and settings are saved in this browser only, so they are here next time. Draw results are kept only in this tab, never in your saved list.

    Details everyone will see

    All optional. They travel inside each private link.

    Draw rules

    Your draw

    How to use the Secret Santa generator

    1. Under Who is playing?, type each Name and press Enter for the next row.
    2. Give couples and housemates the same Household label so they never draw each other. Press Cannot draw to block anyone else (a block works one way).
    3. Fill in Event name, Budget per gift, Exchange date and Note for everyone.
    4. If you are playing, leave I'm playing too ticked and pick yourself in Which one are you?. Tick Allow two people to draw each other only if swaps are fine.
    5. Press Draw names, then Copy link or Email link on each row, and send each link only to the person named on it. Your own row has See who I drew.

    How the draw works

    Names are shuffled with a Fisher-Yates shuffle fed by crypto.getRandomValues. With no households or blocks and swaps off, the shuffled names form one circle. With rules, the tool reshuffles until a draw follows them all. Very tight rules switch it to a random search, which still follows every rule but can favor some valid draws. Each private link holds one person's match, scrambled with a key stored in the link, all after the #, which browsers never send to a server (RFC 3986), so ClickSolveTools never receives your pairings. The scrambling is not encryption: a determined person, organizer included, could decode a link.

    Worked example with the default list

    The page opens with Family Secret Santa: Anna, Ben, Chloe, Dan, Emma and Frank, a $25 budget and the next December 20. Anna and Ben share Garcia, and Chloe and Dan share Lee. The 720 ways to match six givers to six receivers shrink to 64 that follow the household rules without swaps. The tool picks one at random and reports Draw ready for Family Secret Santa: 6 people, 2 households kept apart. As Anna, Reveal my person shows, say, "You are giving a gift to Chloe."

    Budgets, etiquette and remote groups

    Common budgets are $10 to $20 for kids and classrooms, $20 to $30 for offices and $25 to $50 for friends and families. Keep the budget firm, label gifts with the recipient's name, and agree whether gift cards are fine. Remote groups can set a ship-by date a week early and count down with the countdown to date tool; big offices can split into groups with the random team generator.

    White elephant rules in brief

    White elephant (Yankee swap) assigns nobody. Players take turns, ordered by the random name picker or spin the wheel, and each turn opens a gift or steals one. A common rule locks a gift after two steals.

    Limits and what can go wrong

    Secret Santa generator FAQ

    Do people need an email address to join?

    No. The tool never asks for emails or a sign-up. Send links by text or chat, or print slips. Email link only opens your own mail app.

    Can couples be kept from drawing each other?

    Yes. Give a couple the same Household label, or press Cannot draw. If your blocks make a draw impossible, the tool names who is stuck.

    Can the organizer play without seeing the pairings?

    Yes. Leave I'm playing too ticked and the pairings stay off screen. It is a courtesy, not a vault, because a determined person could decode a link.

    What if someone loses their link?

    If this tab is still open, even after a reload, copy the link again from that person's row. If you closed it, the draw is gone, so redraw and resend every link.

    Is the draw truly random?

    Yes, within your rules. Names are shuffled with your browser's cryptographic random numbers, and a draw is shown only after it passes every rule.

    Sources: MDN getRandomValues(); Wikipedia Fisher-Yates; RFC 3986 fragment.