LuckPicker

Tool

Prize Assignment Randomizer

Match a list of winners to a list of distinct prizes — one each, nobody doubled up.

Prize Assignment Randomizer

0 winners, 0 prizes.

Two lists — winners and prizes — matched one to one, in a single draw. Nobody gets two prizes, no prize goes to two people, and the pairing is settled in one operation rather than in a sequence of separate draws.

It is worth being precise about why that is not the same as running a picker several times. Drawing a winner for prize one, then a winner for prize two, then a winner for prize three is three dependent draws with bookkeeping you have to do by hand; getting it wrong is how someone ends up on the list twice.

The lists do not have to be the same length. If there are more winners than prizes, the tool matches what it can and tells you how many are left over rather than quietly truncating.

How the Prize Assignment Randomizer works — and why it's fair

This is a random perfect matching between two different sets, which is a genuinely different operation from the derangement the Secret Santa generator uses. A derangement matches a set to itself with the constraint that nothing maps to itself; a matching maps one set to another set, where self-assignment is not even a concept because the two sides are different kinds of thing.

The implementation shuffles the winner list with Fisher-Yates, shuffles the prize list independently, and pairs them position by position. Two independent uniform shuffles paired positionally produce a uniformly random matching — every possible pairing of winners to prizes is equally likely, which is the property that makes the result defensible.

Shuffling both sides rather than one is not redundant, though it looks it. Shuffling only the prizes would give a uniform matching too, but it would leave the winners displayed in the order they were pasted — and a results list in entry order invites the reasonable suspicion that entry order mattered. Shuffling both removes that reading.

The structural guarantee is worth naming: because the pairing walks two lists positionally, no winner can receive two prizes and no prize can be awarded twice. That is not a check the tool performs afterwards; it is a property of the operation, which is a much stronger thing.

Unequal list lengths are handled by matching the shorter length and reporting the surplus. If eight winners are matched to five prizes, five pairings are made and the tool states that three winners are unmatched. It does not invent a prize, and it does not silently drop three names.

When the Prize Assignment Randomizer is fair — and when it is not

What it does guarantee

  • Every possible one-to-one pairing of winners to prizes is exactly as likely as every other.
  • No winner can receive two prizes and no prize can go to two winners — a structural property, not an after-the-fact check.
  • Both lists are shuffled, so neither the displayed winner order nor the prize order reflects how you typed them.

What it does not

  • It knows nothing about the prizes' relative value. The best prize is exactly as likely to go to anyone.
  • It cannot express a preference or a constraint — there is no way to say that one person should not receive one particular item.
  • Unequal lists leave a surplus. Who is left unmatched is random, and that may be the most consequential part of the result.

Two worked examples

5 winners, 5 prizes

  • There are 5! = 120 possible pairings, and each has a 1-in-120 chance.
  • Any given winner has a 1-in-5 chance of any given prize.
  • Nobody can end up with two, because the pairing walks the two shuffled lists in step.

8 winners, 5 prizes

  • Only 5 pairings are made; the tool states that 3 winners are unmatched.
  • Each winner has a 5-in-8 = 62.5% chance of receiving something.
  • Which three go home empty-handed is itself a random outcome, and worth announcing in advance.

Draws where the prizes are not interchangeable

The tiered giveaway is the standard case: a headline prize and several smaller ones, where running one picker repeatedly means tracking who has already won and remembering to remove them. A single matching does that structurally and produces one result to publish rather than a sequence.

Conference and event door prizes work the same way, with the added benefit that a single announcement — here is the full pairing — is easier to present from a stage than five consecutive draws, and much easier to photograph as a record.

Team assignment to distinct roles or projects is the non-prize version of the same operation: eight people, eight briefs, one matching, nobody doubled up. The group role assigner does this within groups; this tool does it across one flat list.

If everyone is competing for a single prize, the raffle picker is the right tool. If some entrants deserve better odds than others, weight them with the weighted random picker — and if the matching needs constraints, such as somebody who must not receive a particular item, the gift exchange generator is the tool built for constrained assignment.

Frequently asked questions

How is this different from running a winner picker several times?

Repeated picking requires you to remove each winner by hand between draws. Here the one-to-one property is structural, so nobody can be matched twice even in principle.

Is this the same as a Secret Santa derangement?

No. A derangement matches a set to itself while forbidding self-assignment. This matches two different sets, where self-assignment does not exist as a concept.

Why shuffle both lists rather than one?

Shuffling one would already give a uniform matching, but it would display the winners in the order you typed them, which invites the suspicion that entry order mattered.

What if I have more winners than prizes?

It matches as many as it can and states how many are unmatched. It will not invent a prize or drop a name silently.

Can I stop a particular person getting a particular prize?

Not here. Constrained assignment is what the gift exchange generator does, and it will also tell you when your constraints have no valid solution.

Does the order the pairings are listed in mean anything?

No. Both lists were shuffled, so the display order carries no information about entry order or prize value.

Is the top prize more likely to go to the first name I typed?

No. Both sides are independently shuffled, so entry position has no effect on any outcome.

Can I re-run it if I do not like the result?

You can, but re-running until you like the pairing is you choosing, not the tool. If a particular pairing must be avoided, say so in advance with a constraint tool.

How many possible outcomes are there?

For n winners and n prizes, n factorial. Five of each gives 120 pairings; eight of each gives 40,320.

← Back to all tools