列表随机选取器
输入项目列表并指定选取数量,使用crypto.getRandomValues()进行无偏随机选取。可设置是否允许重复。
从按行输入的列表中在浏览器里随机选择一个或多个非空项目。可以选择是否允许同一次抽取中重复出现同一项目。
如何从列表随机抽取项目
- 每行粘贴一个项目。
- 输入要抽取的数量。
- 只有允许同一项目重复出现时才开启允许重复。
- 点击抽取。
- 需要时复制结果。
随机选择方式
每行会先trim,空行会被移除。索引选择使用crypto.getRandomValues()。
不允许重复时,已选项目会从临时池中移除。如果请求数量超过可用项目数,工具会报错。
隐私与限制
选择过程在浏览器本地完成,列表内容不会被本应用有意上传用于处理。实现使用32位随机值再做modulo索引选择,适合一般列表抽取,但不应视为受监管抽签或保证密码学公平性的系统。
常见问题
空行会参与抽取吗?
不会。trim后为空的行会被删除。
同一项目会出现两次吗?
只有开启允许重复时才会。
不允许重复但数量太多会怎样?
请求数量超过候选数量时会报错。
使用Math.random()吗?
不是。当前使用crypto.getRandomValues()。
会修改原列表顺序吗?
不会。只操作临时副本。