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.