Weighted random picker — give some options a bigger chance

Write each option with a weight, such as Pizza, 3 and Salad, 1, and the tool draws a winner where an option with weight 3 is three times as likely as one with weight 1, with the exact percentages shown.

Live demo · real result from this tool
A weight of 3 is three times as likely as 1. Lines without a weight count as 1.

Press Generate to create a result.

Processed on your device — nothing is uploaded.

How to use the weighted random picker

  1. In Options as Name, weight (one per line), write each option and its weight, for example Curry, 2.
  2. Set How many draws (1 to 100).
  3. Tick Allow the same winner twice if one option may win more than once.
  4. Press Pick winner. The first winner is shown large, all winners are listed when you draw several, and an Odds table shows each option’s weight and chance.

What it does and when to use it

A plain draw gives every option the same chance. Sometimes that is not what you want: a raffle where people bought different numbers of tickets, a dinner vote where three people want pizza and one wants salad, a game loot table, or a chore list where the bigger jobs should come up less often. Write the weights once and the tool does the maths.

If every option should be equal, the random picker or the spinner wheel is simpler. To split a list into groups instead of picking winners, use the random group assigner.

How it works

The tool adds up all weights. It then takes a random fraction between 0 and 1, multiplies it by the total, and walks down the list, subtracting each weight until the number falls inside one option’s share. An option with weight 3 covers three times as much of the line as one with weight 1, so it wins three times as often over many draws.

Without Allow the same winner twice, the winner is taken out of the list and the next draw uses the remaining weights. If you ask for more draws than there are options, you get one draw per option and no more.

Worked examples

Dinner vote. The sample list Pizza 3, Curry 2, Salad 1, Noodles 2 has a total of 8. The odds table shows Pizza | 3 | 37.5%, Curry and Noodles 25% each, and Salad 12.5%.

Mixed separators and bad weights. The lines Ana: 2, Bo | 1, Cy, 0, Dee, -3 and Ed give Ana 50%, Bo 25% and Ed 25% (Ed has no weight, so it counts as 1). Cy and Dee are skipped with the message “Ignored lines 3, 4: weights must be positive numbers.”

Limits and tips

  • Up to 100 draws per press. Without repeats you get at most one draw per option, and a warning says so when you ask for more.
  • The odds table shows the chances for the first draw. Without repeats, later draws have different odds because winners are removed.
  • For a prize draw by ticket count, use the number of tickets as the weight.
  • Your list is processed in your browser and not saved.

Frequently asked questions

How do I write the weights?
Put the name first and the weight last, separated by a comma, colon, semicolon, pipe or tab. Pizza, 3 and Pizza | 3 both work, and a percent sign after the number is allowed. A line with no separator counts as weight 1, so Pizza 3 is an option called Pizza 3.
Do the weights have to add up to 100?
No. Each chance is the weight divided by the total of all weights. Weights of 3, 2, 1 and 2 add up to 8, so the first option has 3 in 8, or 37.5%. Decimal weights such as 0.5 also work.
My option name ends in a number. What happens?
Nothing special. A space is not a separator, so "Room 101" stays an option called Room 101 with weight 1. Add a weight after a comma, such as Room 101, 2, to change it.
What does "Allow the same winner twice" change?
When it is off, each winner is removed before the next draw, like taking a ticket out of a hat, so later draws share the odds among the remaining options. When it is on, every draw uses the full list and the odds in the table.
Is the draw random?
Yes. Each draw uses a random fraction from crypto.getRandomValues, your browser's cryptographic source, and lands on an option in proportion to its weight.

Written by the ToolsRift team · Last updated

Pages are drafted with AI assistance and checked by automated tests. How we write and check pages.

Was this tool useful?

Report a problem

Start typing to search every tool.

↑ ↓ to moveEnter to openEsc to close