Random Picker

Paste a list of names (or items, or anything), pick weighted or unweighted winners one at a time or in bulk, and replay the same draw by sharing the seed. Each entry can carry a weight with the name:weight syntax. The PRNG is seeded by default so the page shows which seed produced each draw — share the seed with someone else and they'll see the same winners. Nothing leaves your browser.

One entry per line. Comma- and semicolon-separated also work. Trailing :N sets the weight (default 1). Example: Alice:3, Bob, Carol:0.5. Duplicates collapse case-insensitively, keeping the first.

1 – 1000. With no-repeat, the draw stops when the pool runs out.

Integer seed. Same seed → same winners. Leave blank for true randomness.

Winners
Draws so far
0
Pool remaining
Seed used

Parsed entries

We parsed your input into the canonical { label, weight } shape. Duplicates collapse case-insensitively (first occurrence wins). The picker draws from the unique list; the pool size above reflects that.

Label
Weight
Share

Recent draws

The last 50 draws (across reloads, kept in your browser's localStorage). Click Replay next to a draw to seed the PRNG with the same value and re-run it.

    How this picker works
    • Weighted draws. Each entry has a weight (default 1). The picker computes a cumulative-weight range and draws a uniform [0, 1) random, scaling it to the total. A binary search picks the entry whose cumulative range contains the draw. Higher weight = larger share.
    • Seeded replays. The default PRNG is a mulberry32 seeded with the value in the Seed box (or a random integer when the box is blank). The same seed always produces the same draw, so you can re-run a giveaway and verify the result.
    • No-repeat. When checked, each pick removes the winner from the pool before the next draw — so a name cannot win twice. Unchecked, every draw is independent (good for bulk sampling with replacement).
    • History. The last 50 draws are stored in your browser's localStorage (key beavr-random-picker-history). Each entry carries the label(s), timestamp, and the seed used. Nothing is uploaded.
    • Weight 0. A weight-0 entry stays in the parsed list (and the share table) but cannot win — useful for keeping a "house" name visible while excluding it from the draw.
    • Not cryptographically random. mulberry32 is small and fast, ideal for classroom draws and giveaways. If you need unguessable randomness (lottery, audit, contract), use a server-side crypto.randomBytes.
    • Nothing is uploaded. The whole thing runs in your browser.