Skip to content

Secret Santa Generator

Enter participant names, get random gift assignments. Tap-to-reveal keeps each person's draw private. Reshuffle any time. No sign-up, no email.

Runs entirely in your browser — no data is sent to any server.

About this tool

This generator draws a Secret Santa assignment from any list of names. Each person is assigned one other person to buy a gift for, using a Fisher-Yates shuffle and circular assignment — so no one draws themselves, and every participant both gives and receives exactly one gift.

The reveal-one-at-a-time feature keeps the draw secret even when everyone is in the same room or sharing the same screen. Each participant taps their own card to see their assignment privately. Other assignments remain hidden until tapped. If you prefer to manage distribution yourself, use "Reveal all" and note down each assignment before passing results along.

How to run your Secret Santa

Step 1: Enter all participant names, one per line. Include everyone who is in the gift exchange — family members, office colleagues, friend group.

Step 2: Press "Generate assignments." The tool shuffles names and creates a circular assignment instantly.

Step 3: If you're all together, pass the device around and have each person tap their own name to see their assignment. If you're distributing assignments separately, use "Reveal all" then "Copy all" and share results one-by-one via message.

Step 4: If you want a different draw (maybe the result pairs two people who already know each other's wish lists), press "Shuffle again" for a new assignment from the same list.

Tips for a good Secret Santa

Set a clear budget. The most common Secret Santa conflict is mismatched spending. Agree on a per-person budget before running the draw. A typical office or friend-group budget is $20–$30; family exchanges often run $50+.

Collect wish lists or interests. Ask participants to write three to five items or interests (a genre, hobby, favorite brand) before the draw. Share each person's list with their gift-giver so the giver has direction without the receiver knowing who their Santa is.

Set a delivery date and method. Will gifts be wrapped and opened together, or shipped individually? Setting a clear date and delivery method prevents last-minute scrambles.

Include an exclusion option for family groups. If you'd prefer that spouses or partners not draw each other (because they buy each other gifts separately anyway), note this before generating and reshuf fle if a pair lands on each other.

All randomization on Spinness uses crypto.getRandomValues() — the browser's cryptographic random source. Learn how our randomness works.

Frequently asked questions

How does the Secret Santa assignment work?

Enter all participant names, press "Generate assignments," and each person is assigned one other person to buy a gift for. The algorithm shuffles the names randomly and creates a circular assignment — Alice gives to Bob, Bob gives to Carol, Carol gives to Alice, and so on. No one is assigned to themselves, and everyone both gives and receives exactly one gift.

Can two people be assigned to each other?

Yes, in a two-person list this is unavoidable. With three or more people, the circular assignment eliminates mutual pairs — if Alice gives to Bob, Bob cannot give back to Alice in the same round.

How do I keep assignments secret from participants?

Use the reveal-one-at-a-time feature: have each participant tap their own card privately to reveal only their assignment. The other cards remain hidden. Alternatively, use "Reveal all" to see the full list if you're distributing results yourself (e.g., writing each assignment on a slip of paper).

Is the assignment randomized?

Yes. The tool uses a cryptographically secure Fisher-Yates shuffle (crypto.getRandomValues) to randomize the assignment order before creating pairs. The result is statistically unpredictable — not based on name alphabetical order, entry order, or any other pattern.

Can I shuffle the assignments again?

Yes. Press "Shuffle again" to generate a new set of assignments from the same name list. This is useful if an initial draw creates unwanted pairs (for example, two people who already know what they're getting each other).

Is there a spending limit feature?

The current version handles the assignment draw only. Budget or spending limits are set by the group organizer separately. A common approach is to include the budget in the message when sharing assignments ("your budget is $25").

Is my data private?

Yes. All randomization runs entirely in your browser — no names, inputs, or results are sent to any server. Spinness has no backend. Your data never leaves your device.

How is the randomness generated?

This tool uses crypto.getRandomValues() — the browser's cryptographic random source, not Math.random(). Every result is statistically unpredictable. See our Methodology page for the full technical explanation.