随机数字 生成器
在浏览器中即时生成随机数字。自定义范围、数量和格式。免费、私密,无需向服务器发送任何数据。
生成
在浏览器中即时生成随机数字。自定义范围、数量和格式。免费、私密,无需向服务器发送任何数据。
生成
随机数生成器生成指定范围内的数字,且没有可预测的模式。常见的应用包括掷骰子、挑选彩票号码、统计工作抽样、生成测试数据以及任何需要公正挑选的环境。随机性的质量取决于来源:弱来源可以产生看起来随机但具有可检测模式的数字;即使是复杂的分析也无法预测强大的来源。
该生成器使用浏览器的加密安全随机源 (window.crypto.getRandomValues) 进行安全相关用途,并使用可选的 Math.random 回退功能用于速度比安全性更重要的娱乐用途。对于掷骰子、比赛选秀或任何影响结果的事情,安全来源是正确的选择。
输出范围和计数是可配置的。生成一个数字、一次生成多个数字或具有可选唯一性(无重复)的序列。输出格式包括纯数字、逗号分隔列表和每行一个文本。
许多小决策受益于无偏见的随机选择。选择竞赛获胜者、决定尝试哪家餐厅、随机化测试用例的顺序、从数据集中采样行——所有这些都通过排除人为偏见的随机数生成器进行了改进。
统计和科学工作也取决于质量随机性。蒙特卡洛模拟、A/B 测试桶分配、测试输入随机化以及许多其他技术都需要统计上一致且对于所研究的系统而言不可预测的数字。
设置范围和计数,生成。
随机整数生成:从 crypto.getRandomValues 获取随机字节(或字),应用拒绝采样以避免模偏差,映射到所需范围。不带拒绝采样的普通模数对于未均匀划分到源范围的范围会产生轻微的偏差;拒绝抽样避免了这种情况。
无偏差统一整数生成:生成随机字节,如果 byte > Floor(256/range) × range,则拒绝并重试,否则返回 byte mod range。平均拒绝率最多为 50%,因此即使对于尴尬的范围,该算法实际上也很快。
Math.random 与 crypto.getRandomValues:Math.random 速度更快,但使用 xorshift 或类似的 PRNG,可以在给定足够输出的情况下进行预测。 crypto.getRandomValues 是加密安全的。对于非安全用途(骰子、随意选择),两者都可以;为了安全起见,请使用加密货币。