Random picker
Random numbers in a range · list raffle · weighted draw · shuffle
范围内随机数
列表抽签
"随机"到底靠不靠谱
真随机与可复现随机是两回事,本页两种都给。留空种子时,所有结果来自浏览器的密码学安全随机源(crypto.getRandomValues,与密码生成器同源),每次都不一样、无法预测;填入种子后切换为确定性的伪随机序列(xorshift32)——相同种子 + 相同参数永远得到相同结果。抽签被人质疑时,把种子和参数贴出来,任何人都能一键复演整个过程。
洗牌用的是 Fisher–Yates 算法。这是唯一"每种排列等概率"的经典洗牌法:从后往前,每个元素与前面(含自己)的随机位置交换。实现简单、无偏,本页的洗牌与抽签共用同一套随机源,行为一致。
边界情况不硬凑。最小值大于最大值、不重复模式下要抽的个数超过范围大小、列表为空——这些情况页面会直接说明原因,而不是偷偷改参数给你一份"看起来能用"的结果。
FAQ
Without a seed it uses the browser's cryptographically secure source crypto.getRandomValues (the same one behind the password generator); with a seed it is a reproducible pseudo-random sequence (xorshift32), handy for checking and replaying. For scenes where randomness truly matters (raffles, keys), please do not use a seed.
Paste the entries one per line; the draw can set how many to pick, and weighted mode takes two columns per line as "entry,weight". Shuffling uses the Fisher-Yates algorithm - every permutation is equally likely, and your original list order is not modified.
The seed sets the starting point of the pseudo-random sequence: same seed plus same parameters = exactly the same result. When someone questions a draw, paste the seed and parameters and the whole process replays itself; leave it empty for true randomness with no replay.
No. Everything completes inside the browser - the list never leaves the machine, nothing is written to localStorage, reloading clears it; this page has no upload endpoint at all.