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.
Often used alongside Random Wheel Spinner, Random List Generator and Text Line Shuffler.
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
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.