随机点名器
在浏览器本地完成随机抽取:粘贴一份名单即可随机点名、抽奖或分组,支持不重复抽取与指定人数;填写固定种子还能让结果完全可复现。名单只在内存里处理,不上传任何服务器。
课堂点名、年会抽奖、活动分组,粘贴名单就开抽:本工具在浏览器本地完成随机抽取——抽取模式按人数抽人(不重复或允许重复),分组模式整体洗牌后轮流入组(各组人数相差不超过 1)。名单只在内存里处理,服务器不知道你抽过谁。
公平性口径:抽取基于可复现的 Fisher-Yates 洗牌,不重复模式下每人被抽中的概率严格相等;填一个固定种子(任意数字),同一份名单每次结果完全一致——班会公示抽签结果时附上种子值,任何人都能自行复算验证,杜绝「黑箱抽奖」的质疑。
—
这个工具解决你的问题了吗?
提交后会把工具名、你的输入与当前结果发送到服务器;请勿填写身份证号、手机号等隐私信息。
AI 助手 会结合你当前的输入与结果回答
追问会再次把当前输入与结果发送到服务器;请勿填写隐私信息。
使用步骤
- 粘贴名单(一行一个,空行自动剔除)。
- 选「抽取」填人数,或切「分组」填组数。
- 需要可复现就填固定种子。
- 点「开始抽取」,结果按顺序列出。
计算原理与示例
怎么随机点名
在名单框粘贴一行一个的名字(自动剔除空行),选「抽取」模式并填人数(默认 1 人),点「开始抽取」,结果区按顺序列出被抽中的人。
怎么随机分组
切到「分组」模式并填组数(如分 4 组),名单会先整体洗牌再按序轮流入组,各组人数相差不超过 1,结果逐组列出。
随机种子有什么用
不填种子时每次点都随机;填一个固定数字(如 42)后,同一份名单每次抽取结果完全一致——适合想「存档」某次抽签结果的场景。
公平性怎么保证
抽取基于可复现的洗牌算法(Fisher-Yates):不重复模式下每人被抽中的概率严格相等;如有争议可公布种子值,任何人输入同样的种子都能验证结果。
代码示例
JavaScript 可复现的随机(同种子同结果)
// 用固定种子的伪随机数:抽签结果可复现,便于复盘与公示
function mulberry32(seed) {
let a = seed >>> 0;
return function () {
a = (a + 0x6d2b79f5) >>> 0;
let t = Math.imul(a ^ (a >>> 15), 1 | a);
t = (t + Math.imul(t ^ (t >>> 7), 61 | t)) ^ t;
return ((t ^ (t >>> 14)) >>> 0) / 4294967296;
};
}
// Fisher-Yates:每个排列等概率,比 sort(() => Math.random() - 0.5) 正确
function shuffle(list, rand) {
const a = list.slice();
for (let i = a.length - 1; i > 0; i--) {
const j = Math.floor(rand() * (i + 1));
[a[i], a[j]] = [a[j], a[i]];
}
return a;
}
const rand = mulberry32(20260918);
shuffle(['甲', '乙', '丙', '丁'], rand);
Python random.Random(seed) 同种子同结果
import random
rng = random.Random(20260918) # 独立实例,不污染全局随机状态
names = ['A', 'B', 'C', 'D']
print(rng.choice(names)) # 抽一个
print(rng.sample(names, 2)) # 抽两个(不重复,等价于洗牌后取前 2)
print(rng.shuffle(names)) # 原地洗牌
# 分组:先洗牌再切片,比「轮流发牌」更随机
rng.shuffle(names)
groups = [names[i::2] for i in range(2)]
常见问题
名单会被上传或保存吗?
不会。名单只存在于当前页面的内存里,抽取完成后关闭页面即消失,服务器无从知晓你抽过谁;学生名单这类隐私信息尤其适合本地处理。
抽过的人会重复出现吗?
「不重复」模式下同一轮不会重复(本轮抽过的人自动出局);勾选「允许重复」则每次独立抽取,可能出现同名,适合模拟骰子类场景。
分组的规则是什么?
名单先整体随机洗牌,再按洗好的顺序依次轮流分入各组;先分的组可能多一人。想要「组内也随机」的效果已经天然满足——成员顺序本身就是打乱的。
固定种子怎么用?
种子是任意数字。同一份名单 + 同一个种子 + 同一个模式,永远得到同样的结果;班会公示抽签结果时附上种子值,任何人都能自行复算验证,杜绝「黑箱抽奖」质疑。
能一次抽多个人吗?
可以,人数上限 1000(不重复时不超过名单长度)。课堂抽查连续抽 3 人、年会一次抽 10 名优秀奖都能胜任。
和随机数生成器有什么区别?
随机数生成器产出数字,本工具面向名单:按行粘贴、剔除空行、抽人、分组,免去「抽到序号再对名单」的换算;两者可配合使用。
粘贴的名单格式有要求吗?
一行一个名字即可,逗号、制表符分隔的表格粘贴进来也能识别(自动按行拆分);空行与首尾空格自动清理,无需手工整理格式。
延伸阅读
来自本站原创文章,讲清这个工具背后的算法与口径。