生活健康 本地计算 开箱即用 内置示例 不留痕迹

随机点名器

在浏览器本地完成随机抽取:粘贴一份名单即可随机点名、抽奖或分组,支持不重复抽取与指定人数;填写固定种子还能让结果完全可复现。名单只在内存里处理,不上传任何服务器。

课堂点名、年会抽奖、活动分组,粘贴名单就开抽:本工具在浏览器本地完成随机抽取——抽取模式按人数抽人(不重复或允许重复),分组模式整体洗牌后轮流入组(各组人数相差不超过 1)。名单只在内存里处理,服务器不知道你抽过谁。

公平性口径:抽取基于可复现的 Fisher-Yates 洗牌,不重复模式下每人被抽中的概率严格相等;填一个固定种子(任意数字),同一份名单每次结果完全一致——班会公示抽签结果时附上种子值,任何人都能自行复算验证,杜绝「黑箱抽奖」的质疑。

使用步骤

  1. 粘贴名单(一行一个,空行自动剔除)。
  2. 选「抽取」填人数,或切「分组」填组数。
  3. 需要可复现就填固定种子。
  4. 点「开始抽取」,结果按顺序列出。

计算原理与示例

怎么随机点名

在名单框粘贴一行一个的名字(自动剔除空行),选「抽取」模式并填人数(默认 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 名优秀奖都能胜任。

和随机数生成器有什么区别?

随机数生成器产出数字,本工具面向名单:按行粘贴、剔除空行、抽人、分组,免去「抽到序号再对名单」的换算;两者可配合使用。

粘贴的名单格式有要求吗?

一行一个名字即可,逗号、制表符分隔的表格粘贴进来也能识别(自动按行拆分);空行与首尾空格自动清理,无需手工整理格式。

延伸阅读

来自本站原创文章,讲清这个工具背后的算法与口径。