跳到主内容
UniKit

随机抽签

把名单粘进来随机抽取:支持多行或逗号、顿号分隔,可去重、可设权重、可指定抽取数量,还能一键洗牌全部并保留带时间的抽取历史。

浏览器本地运行所有计算都在你的浏览器里完成,数据不会离开本机。

抽取设置

随机数来自浏览器的 crypto.getRandomValues,全程在本地完成。

名单数量:3

结果

本次抽中

先点上面的按钮开始抽取吧。

剩余名单(0)

—

历史记录

还没有抽取记录。

这个工具能做什么

  • 课堂点名、年会抽奖、团建分组:把名单整段粘进来,一行一个或者用逗号、顿号分隔都能识别。
  • 需要中奖概率不均等时给候选项加权重,例如「一等奖,1」和「谢谢参与,6」,让稀缺的奖更难抽中。
  • 多轮抽取时打开「抽中后从名单移除」,抽过的人不再重复中奖,历史记录会带上每次抽取的时间。
  • 要一个完整随机顺序时用「洗牌全部」,比一次只抽一个更适合安排发言顺序或座位。

示例

输入

张三,3
李四、王五

输出

张三(权重 3)· 李四(权重 1)· 王五(权重 1)

第一行按「名字,权重」解析,权重 3;第二行按顿号拆成两个候选项,未写权重时按 1 计,所以最终名单是 3 项。

常见问题

权重是怎么解析的?

一行里如果以「名字,数字」或「名字 数字」结尾,就按权重解析,数字可以是小数;否则整行按逗号、顿号、分号拆成多个等权候选项。权重不写默认为 1,数字解析不出来时会退化成普通名字而不是报错。

「允许重复抽中」和「抽中后移除」能一起用吗?

可以,但语义上有点矛盾。允许重复时抽取数量可以大于名单长度,是从名单里反复随机挑;开启移除后抽中的项会从剩余名单里消失,重复抽中同一人就没那么容易了。按场景选一个即可。

抽取数量能超过名单长度吗?

默认不能,会提示抽取数量不能超过名单长度。如果确实要抽更多次(比如抽 10 次看看概率分布),打开「允许重复抽中」就可以超过名单长度。

去重是按什么去重的?

按名字完全匹配去重,保留第一次出现的权重。所以「张三,3」和后面再写的「张三」会被合并成一项,权重取 3。

随机抽取公平吗?数据会上传吗?

公平且不上传。随机数取自浏览器 crypto.getRandomValues,不重复抽取用 Fisher–Yates 洗牌,整个过程在本地完成,名单和历史都不会离开浏览器。

关键词:random pickerlotterydrawshufflerandom name pickerweighted random随机抽签抽奖抽签洗牌随机点名权重抽取

同类工具