Paste options.
Pick one.
No animation, no fluff. Drop your options, set how many to draw, hit pick. Weighted entries via :N, no-duplicate multi-select, shareable URL.
Options (one per line)
Tips & weights
:N to make an entry N times more likely. Pizza:3 is three times as likely as a normal entry. Weights stay in effect for multi-pick — picks are still unique, just biased toward heavier entries.
# are ignored, so you can leave notes or mark categories without affecting the draw.
About this generator
The choice picker is the wheel spinner with the theatre stripped out. Same math, no slices to render, no five-second spin to sit through. If you have ever pasted twenty names into a wheel, watched it crawl, and then thought "I just want the answer," this is the page for you.
It is also the right tool when the wheel stops being the right tool. Past about thirty entries, slices become too thin to read. Past sixty, you cannot even reliably see what the wheel landed on. The picker handles a few thousand entries without flinching, and presenting one or many results as a clean ordered list is honestly more useful for most cases than a slowly decelerating circle.
The two features that make this not just a basic random.choice wrapper: weighted entries and no-duplicate multi-pick. Append :3 after any line and that option becomes three times as likely. Set the pick count above 1 and you get that many distinct results — sampling without replacement, even with weights. Both are unambiguous about what they do and exactly what most "random pickers" online get wrong: a lot of them either silently allow duplicates in multi-pick mode, or quietly bias toward shorter lists when you use weights. This one does neither.
What this is for: classroom name calls, picking an article from your read-later list, choosing finalists from a long shortlist, deciding what to make for dinner from a list of recipes you bookmarked six months ago. What it is not for: anything that requires audited randomness. For raffles where the result is theatrical, use the Wheel Spinner. For shuffling a list end-to-end rather than picking, the List Randomizer is the right neighbor. For pure yes/no, the Yes / No Decider.
What people actually use it for
The unflashy workhorse of decision tools.
Classroom name calls
Paste your roster, pick one to answer the question or two to present next. Faster than the wheel, less performative — students stop bracing for the show and just answer.
Picking dinner
The eternal use case. Save a list of restaurants or recipes as a bookmark, share it as a URL with a partner, decide together. Add weights for places you actually like.
Choosing a movie or book
Drop your watchlist or to-read pile, pick three at random, then choose between those three by gut. The narrowing is the part the picker actually solves.
Narrowing finalists
Hiring shortlists, design candidates, name suggestions. Pick five from twenty to focus the next conversation. Weighted entries let you nudge based on existing preference without committing.
What to wear
Outfit decision fatigue is real. List the combos, pick one, save it. Gets you out the door 15 minutes faster on weekday mornings.
Generating sample data
Developers and analysts use it to draw random rows from a list during testing — paste IDs or labels, pick a sample. The shareable URL becomes a reproducible test fixture.
How it works
The randomness
Every pick uses crypto.getRandomValues to draw a 32-bit unsigned integer — the browser's cryptographic RNG, not Math.random. The integer is turned into an in-range index using rejection sampling: we compute the largest multiple of N below 2³², discard any draw at or above that limit, and re-roll. That eliminates the small modulo bias that random % N introduces when N does not divide evenly into 2³².
Weighted picks
For weighted entries we build a cumulative weight table, draw a random integer up to the total weight, and find the first cumulative entry that exceeds it. This is exactly proportional sampling — a weight of 3 is exactly three times as likely as a weight of 1, with no rounding artifacts even for awkward totals.
Multi-pick without replacement
For pick counts above 1, we run a partial Fisher-Yates shuffle on a copy of the (weighted) entry pool — picking one entry, removing it, recomputing the cumulative table, and repeating K times. This guarantees no duplicates while preserving weights for the remaining entries. If you ask for more picks than there are entries, the count is clamped to the list size.
State & sharing
Entries and pick count live in the URL query string (?entries=…&n=3) and mirror to localStorage. Loading the URL anywhere — different browser, embed, partner's phone — recreates the exact picker. The last 10 results are kept locally; nothing leaves your machine.
Common questions
How is this different from the wheel spinner?
The wheel is theatrical — entries take time to render and a spin takes a few seconds. The choice picker is the same math without the show. For lists over 30 items, or when you want to pick several at once, the picker is faster and cleaner.
Can I weight entries so some are more likely?
Yes. Append a colon and a positive integer after any entry. Pizza:3 is three times as likely as a normal entry. Weights work in both single- and multi-pick mode, and multi-pick still guarantees no duplicates.
How does pick count handle duplicates?
Multi-pick is sampling without replacement. Ask for 3 picks from 10 entries and you get 3 different entries. Ask for more picks than entries and the count is clamped to the list size — no fake duplicates, no errors.
Is the randomness fair?
Yes. We use crypto.getRandomValues with rejection sampling so every entry has an exactly equal chance, with no modulo bias. With weights, each entry has a probability of weight / Σweights — also exact.
Can I share the list with someone?
Yes. The full URL of the page reflects your current options and pick count. Hit Share URL, paste anywhere — the picker rebuilds itself for whoever opens it. Nothing is stored on our servers.
What is the maximum list size?
Practically there is no cap. The picker handles thousands of entries instantly. URLs over a few thousand items get long, so for huge lists keep them in the textarea and avoid sharing the URL — or use the embed and pass entries via your own backend.
Can I embed this on my site?
Yes. Copy the iframe embed in the section above. Pre-fill entries by setting the entries query parameter on the embed URL — useful for classroom tools or course pages where you want a specific list ready to go.
Related generators
Same neighborhood — different question.