Secret Santa Generator (No Email)
Fair Secret Santa draws with exclusions — private links or printed slips, no accounts.
Secret Santa
Hi !
You are the Secret Santa for…
This link is only for you — please don’t forward it. The name is stored inside the link itself; nothing was sent to a server.
This Secret Santa link is incomplete or damaged. Ask the organiser to send it again — and copy the whole link, including the part after “#”.
Names drawn
Show everyone’s match (organiser only)
Only open this if you are not taking part yourself, or if you need to fix a mistake.
About the Secret Santa Generator (No Email)
Type everyone’s name, add the rules — partners and families who should not draw each other, last year’s matches — and press Draw names. Nobody draws themselves, every rule is kept, and when the rules allow it every possible draw is equally likely.
Then each person needs to find out who they are buying for, without anyone else knowing. Send each one their private link by chat, SMS or email: it opens a page that greets them and shows their match, budget and exchange date. The assignment travels inside the link (after the #), which browsers never send to a server, so there are no accounts, no email addresses and nothing stored online. Prefer paper? Print fold-up slips instead.
How to use it
- Enter the people taking part, one per line, and optionally the event name, budget, exchange date and a message for everyone.
- Under Don’t pair, put people who should not draw each other on one line (
Asha + Ravi). Under Not this year, write one-way rules such as last year’s matches (Meera > Joe). - Press Draw names. Tick One circle first if you want a single chain through everyone, so gifts can be handed over one after another.
- Press Copy link or Send next to each name and send that link to that person only — or Copy all links to paste them into separate chats. Or press Print fold-up slips.
- Each person opens their link and taps Show the name. The draw stays saved in your browser so you can resend a link; Start over deletes it.
Examples
Asha, Ravi, Meera, Joe, Li, Sam · Don’t pair: “Asha + Ravi”, “Meera + Joe”
For example Asha → Meera, Meera → Sam, Sam → Ravi, Ravi → Li, Li → Joe, Joe → Asha
Neither couple draws each other, and nobody draws themselves.
Event “Office Party 2026” · Budget ₹500 · Exchange 24 December 2026
Each link shows: “Hi Asha! You are the Secret Santa for… Ravi · Budget ₹500 · Gift exchange Thursday, 24 December 2026”
Common uses
- Christmas Secret Santa at home, at work or among friends who live apart.
- Kris Kringle, Chris Mom and Chris Child, and Secret Friend games in offices, colleges and housing societies.
- Diwali, Eid or New Year gift exchanges, and classroom gift swaps (printed slips work without phones).
How the draw stays fair
The draw tries random orderings of everyone, made with your browser’s cryptographically secure generator (crypto.getRandomValues), until one fits every rule: nobody draws themselves, nobody draws someone on their Don’t pair line, and no Not this year rule is broken. Because every ordering is equally likely to be tried, every valid draw is equally likely to be the result. If the rules are so tight that valid draws are rare, a randomised matching search finds one instead (still random, though no longer exactly equally likely), and if no draw is possible at all the page explains which rule to remove.
With One circle, the draw is a single chain — Asha gives to Ravi, Ravi to Meera, and so on back to Asha — which is handy when presents are handed over one at a time; every single chain that fits the rules is equally likely in the same way. When the rules make such chains rare, the page joins the circles of a random valid draw into one by swapping matches (each swap keeps every rule). Without One circle, the draw may form several smaller circles, including two people who draw each other.
What is in a private link
A link looks like …/secret-santa-generator/#reveal=eyJ2Ijox…. Everything after the # is the event name, the person’s name, their match, the budget, the date and your message, written in a URL-safe code (base64 of a short JSON text). Browsers do not send the part after # to the website, so the match never reaches any server, including MySmartCoPilot’s.
The code is not encryption: anyone who has someone’s link can open it and see that person’s match. So send each link only to its owner, in a private message — not to a group chat. If you are taking part yourself, don’t open other people’s links or the Show everyone’s match list.
Printing fold-up slips
Each slip has three panels: the top shows who the slip is for, the middle is a patterned cover, and the bottom says who they are buying for. Cut along the dashed outline, fold the bottom panel up over the patterned one so the name is hidden inside, and seal it with tape. Hand out the slips by the names on the top panels.
Limitations
- Up to 200 people, names up to 40 characters.
- Links are encoded, not encrypted (see above); keep each link private. Messages are limited to 300 characters.
- Wish lists, anonymous chat and reminders are not included — they would need a server to store them.
- The draw is saved only in the browser where you made it. To change it, press Draw again and send everyone their new link.
Privacy
The draw happens in your browser and is saved only there. Reveal links carry each match inside the link itself (after #), which is never sent to a server.
Frequently asked questions
How does everyone find out who they got without email?
Send each person their own private link — by WhatsApp, SMS, Slack or any chat. Opening it shows only that person’s match. Or print fold-up slips and hand them out.
Can I stop couples drawing each other?
Yes. Under Don’t pair, write each couple or family on one line, for example Asha + Ravi. Everyone on a line is kept from drawing anyone else on that line.
How do I avoid last year’s pairs?
Under Not this year, write last year’s matches as giver > receiver, one per line. Only that direction is blocked: if Meera had Joe last year, Joe can still draw Meera.
Can the organiser take part too?
Yes. The page never shows you anyone’s match unless you open Show everyone’s match or someone else’s link — just send the links without opening them. Printing the slips shows every match in the print preview, so if you play too, use links or let someone else print.
Someone lost their link. What now?
Open this page in the same browser you used for the draw: it is still there. Press Copy link next to their name and send it again.
Is it random?
Yes — the draw uses your browser’s cryptographically secure random generator, and every draw that fits your rules is equally likely. Only when the rules leave very few possible draws does the page switch to a search, which is still random but not exactly equally likely.