Random Item Picker

Picks one random item from a pasted list (one per line). Supports an optional `::weight` suffix per line to bias which items are more likely to be picked, and a no-repeat-until-exhausted mode that removes each picked item until the whole list has been drawn once. A free online tool from Staaarter, right in your browser.

Runs locallyUpdated 2026-07-26

Overview

Introduction

Whenever you need to pick one thing from a list fairly — a name for a raffle, a task to tackle first, a restaurant for dinner — doing it by hand invites bias. This tool picks uniformly (or by weight) at random from a pasted list.

Beyond a single pick, it supports optional per-item weighting and a no-repeat mode for cycling through a list without repeats until it's exhausted.

What Is Random Item Picker?

A random selection tool: paste one item per line, optionally tag some lines with a `::weight` suffix, and get one item picked at random.

It's built for everyday decision-making and light gamification (raffles, standup order, menu picks) rather than statistically rigorous sampling.

How Random Item Picker Works

Each non-empty line is parsed for an optional trailing `::number` weight suffix; lines without one default to weight 1.

A weighted random pick draws a random number between 0 and the total weight, then walks the list subtracting each item's weight until it lands on the chosen item — an item with weight 3 has three times the chance of being landed on as one with weight 1.

In no-repeat mode, the picked item is excluded from the pool for the next pick; once every item has been picked once, the pool resets.

When To Use Random Item Picker

Use it to fairly choose a winner from a list of raffle entries or a name from a roster.

Use it to decide between options — restaurants, movies, tasks — when you want an unbiased, quick decision.

Features

Advantages

  • Supports weighting individual items without needing to duplicate lines to bias probability.
  • The no-repeat mode guarantees every item gets picked exactly once per cycle, useful for round-robin style selection.
  • Works on any plain-text list pasted directly into the tool, no file upload needed.

Limitations

  • Weight parsing looks specifically for a trailing `::number`; an item whose text legitimately ends in `::3` for other reasons will be misread as a weight.
  • This uses `Math.random()`, which is fine for casual decision-making but not appropriate for anything requiring cryptographic fairness guarantees.

Examples

Simple even pick

Input

Pizza
Tacos
Sushi

Output

Tacos

Each of the three items has an equal 1-in-3 chance.

Weighted pick

Input

Pizza::3
Tacos::1
Sushi::1

Output

Pizza

Pizza has weight 3 against a total weight of 5, giving it a 60% chance versus 20% each for the others.

Best Practices & Notes

Best Practices

  • Use the no-repeat mode when you want to guarantee everyone or everything gets picked exactly once before repeats happen.
  • Double-check weight suffixes for typos, since a malformed suffix like `::abc` is treated as plain text and defaults to weight 1.

Developer Notes

Weighted selection uses a linear scan subtracting weights from a random draw (an O(n) method) rather than building a cumulative-distribution binary search, which is simpler to reason about and fast enough for typical list sizes of a few hundred items.

Random Item Picker Use Cases

  • Picking a raffle or giveaway winner fairly
  • Choosing a random name for standup order or a chore rotation
  • Deciding between a short list of options like restaurants or activities

Common Mistakes

  • Forgetting the `::` separator and expecting a number at the end of a line to be read as a weight automatically.
  • Setting every item's weight to 0, which leaves nothing with a chance of being picked.

Tips

  • Use whole-number weights for the clearest mental model of relative odds (e.g. weight 2 means 'twice as likely').
  • Turn on no-repeat mode for fair round-robin picking across a team or list.

References

Frequently Asked Questions