KNOW WHAT HAPPENS

Random, with clear rules.

A useful local tool is not an independent witness. Here is what this one does — and what it cannot promise.

Each entry gets one chance

Blank lines are ignored and leading or trailing spaces are removed. Internal spaces and capitalization are kept. Duplicate labels are separate entries with different internal IDs. Three lines “Alex”, “Alex”, “Sam” give each line a one-in-three chance, while Alex as a displayed name has two chances in three. Exact duplicate removal is always your choice.

Keep a winner or remove it for the round

The default excludes a picked entry by its internal ID, not by its displayed name. The original list is kept. “Keep winner” allows the same entry to appear again. Changing this rule after picking, or applying a changed list, starts a new round. “Start a new round” restores eligibility; “Clear history” does not.

One decision, then an animation

On activation the tool fixes a list snapshot, the rule and one result before showing animation. Skipping, reduced motion, tab switching and refresh do not intentionally trigger another pick. The wheel keeps the snapshot for that draw, so removing a chosen entry cannot change the slice under its pointer.

The random source

Picking and grouping use the browser’s Web Crypto crypto.getRandomValues. Bounded integers use rejection sampling to avoid modulo bias. Grouping uses Fisher–Yates shuffling. There are no weights, forced winners or hidden retries to make an outcome look different. When secure randomness is unavailable, the operation fails instead of switching to a weaker source.

Remainders when making teams

Every valid entry is assigned exactly once. Headcounts differ by at most one. With ten entries and three teams, one randomly chosen team has four entries and the others have three. Team sizes are balanced, but skills, gender and roles are not.

Large lists and limits

A list supports up to 1,000 entries, 120 Unicode code points per entry and 512 KiB of raw UTF-8 input. Some combined emoji use multiple code points. Multiple spreadsheet columns and hidden control or direction-override characters are rejected with an explanation. Above 24 candidates, the tool uses a simple result card instead of cramped slices. Long labels use numbered slices linked to the full list. These display changes do not remove candidates or change probabilities.

Session data and copying

Names, drafts and results are processed in your browser. When available, session storage restores this tab after refresh. Browser restoration may retain a closed tab, so closing it is not a guaranteed deletion method. Each tool has a “Delete session data” control; shared-computer users should also check browser site-data settings. If storage is unavailable, the tool runs in memory and warns that refresh may lose progress. Long-term saving is off by default. “Save list on this device” explicitly stores a reusable list and its settings in local storage, not past draws. Saved lists have separate delete controls and can be visible to other people using the same browser. Clearing browser data can remove them; export a file to keep a separate backup.

Copying puts the selected text on your system clipboard and may expose names to other apps or recipients. Copy only what you intend to share.

Files, printouts and presentation

A list JSON file contains entries and settings; an activity backup also includes drafts, exclusions, history and results. Imports are checked and previewed before you confirm loading or replacing an activity. JSON files are limited to 4 MiB and single-column TXT lists to 512 KiB. Local files can be edited, so they are not independent evidence of a draw.

Result downloads and print previews may contain names. CSV adds a text prefix to possible spreadsheet formulas, in addition to escaping quotes; re-saving in a spreadsheet may remove that protection. Use TXT or JSON for unchanged text. The browser controls download and print completion. Presentation changes only the view, not the result. Browser fullscreen is optional; expanded page mode remains available when it is refused.

Network and trust boundaries

This version has no advertising, external analytics, session replay, remote fonts or error-reporting scripts. Loading the site still makes network requests for its pages and assets. The tool has no roster-upload endpoint and does not put your entries in the URL. Future advertising would introduce separate data flows and require a new privacy review. See the privacy notice for the content-free page events and separate local deletion controls.

Someone controlling a browser can edit code and stored state. This is not a certified, notarized or tamper-proof draw, and is not intended for high-value prize allocation, gambling or independently supervised decisions. Algorithm tests check implementation properties, not an absolute guarantee about any person operating the tool.

Open name pickerMake teams