Weighted Random Picker, Explained

After reading this you can compute the exact odds of any entry in a weighted list, predict how those odds shift when you draw several winners without replacement, and avoid the traps that quietly bias a draw.

What a weighted picker does

A plain random picker gives every entry the same chance. A weighted picker lets some entries carry more chances than others. You assign each line a number called its weight, and the entry's probability is that weight compared to the total of all weights.

Imagine a raffle drum. Alice bought 5 tickets, Bob bought 3, and Carol bought 2. The drum holds 10 tickets. Alice's chance of the first draw is 5/10 = 0.5, Bob's is 3/10 = 0.3, and Carol's is 2/10 = 0.2. The weights are just ticket counts. Nothing about weighting requires whole numbers, though: a weight of 2.5 works exactly the same way, since only the ratio to the total matters.

The same math covers loot tables in games, task lists where urgent items should surface more often, and any draw where fairness means proportional rather than equal.

When to use weights, and when not to

Use weights when the entries genuinely deserve different odds. Raffle tickets bought in different amounts, sales leads sized by deal value, or a chore wheel where the big jobs should come up less often are all good fits.

Do not reach for weights when every entry should be equal. Equal odds are simpler and less error prone, and a specialised tool handles them better. For a fair uniform integer, use the Random Number Generator. To split people into balanced groups, use the Team & Pair Randomizer.

Weights are not percentages unless they happen to sum to 100. If you type 5, 3, and 2, those are not "5 percent, 3 percent, 2 percent". They sum to 10, so the odds are 50, 30, and 20 percent. The picker always divides by the running total.

The formula and the intuition

For a single draw, the probability of entry i is its weight over the sum of all weights:

P(i) = \frac{w_i}{\sum_{j=1}^{n} w_j}

Here w_i is the weight you gave entry i, n is the number of entries, and the denominator \sum_{j=1}^{n} w_j is the total of every weight. The denominator is the whole point: an entry's chance depends on the others, not just on its own number.

Two consequences follow directly. First, doubling one weight exactly doubles that entry's odds only if the other weights stay fixed and small relative to the total. More precisely, doubling a weight from w to 2w changes the numerator and the total by the same amount w, so the new probability is \frac{2w}{S + w} where S was the old total. Second, scaling every weight by the same factor changes nothing: weights 5, 3, 2 and weights 50, 30, 20 give identical odds, because the factor cancels top and bottom.

A worked example with the demo data

Three entries, one draw

Load the demo and you get three entries with weights 5, 3, and 2. Call them Alice, Bob, and Carol.

  1. Add the weights: 5 + 3 + 2 = 10. This is the denominator.
  2. Divide each weight by 10. Alice: 5/10 = 0.5. Bob: 3/10 = 0.3. Carol: 2/10 = 0.2.
  3. Check that the probabilities sum to 1: 0.5 + 0.3 + 0.2 = 1.0. They always must.

So across many single draws, expect Alice roughly half the time, Bob about three draws in ten, and Carol about one in five. Over 1000 draws you would expect near 500 for Alice, 300 for Bob, and 200 for Carol, with normal random wobble of a few dozen either way.

Each bar height is the weight divided by 10. The three bars sum to 1.

Drawing several winners without replacement

Drawing one winner is simple. Drawing several changes depending on one choice: with replacement or without.

With replacement
Each draw is independent and uses the original weights. The same entry can win more than once. Odds never change between draws.
Without replacement
A chosen entry is removed, then the remaining weights are re-normalized over the new smaller total. Each entry wins at most once, and the odds of later draws depend on who was already picked.

Without replacement is the raffle drum: once a ticket leaves, it cannot be drawn again, and the remaining tickets share the drum. Work the demo data for two winners without replacement.

Two winners, without replacement

  1. First draw uses the full total of 10. Alice 0.5, Bob 0.3, Carol 0.2.
  2. Suppose Alice is drawn first (probability 0.5). Remove her weight of 5. The remaining total is 3 + 2 = 5.
  3. Second draw re-normalizes: Bob 3/5 = 0.6, Carol 2/5 = 0.4. Bob's odds jumped from 0.3 to 0.6 because a large competitor left the drum.

To get the chance that a specific pair wins in a specific order, multiply. The chance Alice then Bob is 0.5 × 0.6 = 0.3. The chance Bob then Alice is 0.3 × (5/7) = 0.3 × 0.7143 = 0.2143. Order matters for these ordered probabilities, and they differ because the leftover totals differ.

With weights 5, 3, 2 the single-draw odds are 0.5, 0.3, 0.2. Raise Alice's weight to 10 and the total becomes 15, so the odds move to 0.6667, 0.2, 0.1333. Notice that Bob and Carol both drop even though their own weights never changed.

Reading the results and its probability column

The picker shows each entry's exact single-draw probability next to it. Read that column as a prediction for one draw only. It does not update in your head as winners are removed; the tool does the re-normalization internally for later draws.

A reported probability of 0.2 does not promise 2 wins in your next 10 draws. Randomness clusters. In 10 independent draws with replacement, the chance Carol (0.2) wins exactly twice is \binom{10}{2}(0.2)^2(0.8)^8 \approx 0.302, only about 30 percent. The chance she wins zero times is (0.8)^{10} \approx 0.107. Both outcomes are ordinary.

There is no "due" entry. Each draw with replacement forgets the past completely. If Carol lost 8 times in a row, her chance on the ninth draw is still exactly 0.2. The stretch of losses is already in the past and cannot pull the next draw.

Common mistakes

The errors below account for most surprised messages about a picker being "unfair".

  • Treating weights as final percentages. Weights only become percentages after dividing by the total. Adding a fourth entry changes every existing percentage, even with the old weights untouched.
  • Zero or negative weights. A weight of 0 means that entry can never be drawn, which is usually a typo. Negative weights are meaningless here; the formula assumes non-negative numbers.
  • Expecting proportions from a tiny sample. Proportions settle only over many draws. Ten draws will rarely match the stated odds closely. A thousand draws will.
  • Confusing the two modes. Asking for 3 winners without replacement from a 2-entry list cannot work, because the drum runs out. With replacement, 3 winners from 2 entries is fine and can repeat.
  • Assuming this is cryptographic randomness. The draw is unpredictable enough for raffles, games, and chores. Do not use it to generate keys or anything an adversary would try to predict.

Related tools

When your task is not proportional weighting, another picker fits better. For plain uniform integers with no bias, use the Random Number Generator. To shuffle names into fair teams or pairs, use the Team & Pair Randomizer. To seed a knockout draw, use the Tournament Bracket Generator, which handles byes and seeding.

Frequently asked questions

Do the weights have to add up to 100?

No. They can sum to anything. The tool divides each weight by the running total, so 5, 3, 2 and 50, 30, 20 give the identical odds of 0.5, 0.3, and 0.2.

Can I use decimal weights?

Yes. A weight of 2.5 against a weight of 7.5 gives odds of 2.5/10 = 0.25 and 0.75. Only the ratios matter.

What happens if I set a weight to zero?

That entry can never be drawn. Its probability is 0, and it does not add anything to the total. Use zero deliberately to temporarily exclude an entry without deleting it.

Why did an entry's odds change when I only edited a different entry?

Because every entry shares the same denominator. Raising one weight raises the total, which lowers everyone else's fraction. That is the formula working as intended, not a bug.

Is this random enough to trust for a real raffle?

For raffles, chores, and games, yes. It is not cryptographic randomness, so never use it to produce passwords, tokens, or keys.