随机列表生成器是一个在浏览器里跑的抽签和洗牌工具,输入一批条目后可以随机打乱顺序、抽取指定数量、去重,再把结果复制或导出。它解决的是「人手动排不公平」的问题:比如年会抽奖,你把 200 个员工工号粘进去,设置抽取 10 人,点一下就能得到不重复的 10 个中奖号码,而不是用 Excel 拉 RAND() 再排序、还得手动删重复。适合抽奖、课堂点名、随机分组、测试数据抽样、决定谁先发言这类场景。所有计算都在本地完成,名单不会上传到服务器。
| 对比维度 | 本工具 | 手工/替代做法 |
|---|---|---|
| 200 人抽 10 人耗时 | 粘贴名单后约 2 秒出结果 | Excel 拉 RAND() 排序再删重复,约 3 到 5 分钟 |
| 随机性来源 | crypto.getRandomValues(),密码学安全伪随机 | Math.random() 或人眼挑,前者可预测、后者有偏好 |
| 结果可复现 | 填种子即可 100% 复现同一顺序 | Excel 每次重算 RAND() 都会变,无法复现 |
| 去重能力 | 一键去重,支持忽略大小写,10 万行秒级 | Excel 删除重复项需选中列、点菜单,且默认区分大小写 |
| 数据去向 | 全程本地,无网络上传 | 在线抽奖网站通常把名单传到服务器,存在泄露风险 |
不会。抽取采用无放回方式,从 N 个条目里取 k 个,每个条目最多出现一次,结果数量恒等于 min(k, N)。比如 200 人抽 10 人,得到的就是 10 个互不相同的编号。如果你需要「抽完放回」的独立抽取,请分 10 次、每次抽 1 人。
用的是浏览器内置的 crypto.getRandomValues() 生成随机数,属于密码学安全的伪随机源,不是 Math.random()。它没有可预测的周期,但严格来说仍是伪随机。抽奖场景下 200 人抽 10 人,任意指定 10 人组合的中奖概率都是 1/C(200,10),约 5.4×10⁻¹⁶。
种子决定随机序列的起点。填同一个种子、同一份名单、同样的抽取数量,每次结果完全一致。比如种子填 20240501,抽 5 人,今天和明天跑出来的顺序一模一样。不填种子则每次用系统熵重新初始化,结果不可复现。
默认按整行文本精确匹配,区分大小写和首尾空格。也就是「张三」和「张三 」(末尾有空格)会被当成两条。开启忽略大小写后,Apple 和 apple 视为重复,保留先出现的那条。去重后条目数只减不增,1000 行最多剩 1000 行。
纯文本处理,1 万条以内基本秒出,10 万条约 1 到 2 秒,取决于设备性能。超过 50 万条时浏览器渲染结果列表会明显卡顿,建议先导出再查看。注意这是本地内存计算,条目越多占用内存越高,10 万条约占几 MB。
不会。整个随机化、去重、排序过程都在你的浏览器里用 JavaScript 完成,没有网络请求发送名单内容。断网状态下打开页面照样能用。关掉标签页后数据即从内存释放,工具不写入服务器数据库,也不做本地持久化存储。
适用范围:纯文本条目,一行一条,建议单次不超过 10 万条。随机性基于浏览器 crypto.getRandomValues(),属密码学安全伪随机,非物理真随机;用于抽奖、分组、抽样足够,不适用于密码学密钥生成。去重默认区分大小写与首尾空格。所有计算在浏览器本地完成,名单不上传、不落库,关闭页面即释放。