⭐ 觉得好用?收藏备用,下次直接打开
候选名单
0 个候选项
抽取设置
抽取数量
🎲
历史记录
暂无记录

    随机抽签工具 从候选项列表里随机抽取,支持多套独立名单、本轮不重复、批量抽多个、数字范围一键填入。基于浏览器密码学级随机源(crypto.getRandomValues())。

    核心功能

    功能说明
    多套名单多份独立名单(班级A、年会奖池等),候选项/设置/历史互不影响
    本轮不重复抽过的人本轮不再出现,配「重置本轮」按钮控制边界,课堂点名首选
    允许重复一次抽 N 个时允许同一项出现多次(默认关闭)
    数字范围输入起止 + 可选补零,一键追加到候选区
    历史记录每份名单独立保存最近 50 次抽签结果

    抽签算法

    • 不放回(默认):一次抽 N 个时,每抽一个就从池里移除,保证这 N 个互不相同
    • 放回(“允许重复” 开启):每次独立随机,可能抽中同一项多次
    • 轮内不放回(“本轮不重复” 开启):跨多次抽签,抽过的并入”已抽”集合,直到手动重置

    伪随机 vs 真随机

    • 伪随机(PRNG)Math.random() 这类算法生成,可重现,对一般抽签足够
    • 密码学级随机(CSPRNG):浏览器 crypto.getRandomValues(),不可预测
    • 真随机:硬件熵源(CPU 噪声、Intel RDRAND),密码学场景才需要

    本工具用 crypto.getRandomValues() + 拒绝采样消除模偏置,对抽奖、抽签、随机点名都安全。

    避免”老抽到同一人”的实战技巧

    • 开启 「本轮不重复」,全班轮完再点重置
    • 不同班级/场景建独立名单,互不污染
    • 想给某人加倍概率,把名字在名单里多写几遍

    📍使用场景

    • 课堂随机点名老师从班级名单里随机点人答题;开启「本轮不重复」可保证一轮内每人都被覆盖。
    • 团队/年会抽奖群里小型抽奖、年会现场抽取获奖者,多份名单分别保存(一等奖池、二等奖池)。
    • 抽签做决定选择困难时(吃什么、看哪部电影)让随机数帮你决定。

    常见问题

    计算机的"随机"真的随机吗?

    伪随机——大多数语言的内置随机数函数(JS Math.random()、Python random)是伪随机数生成器(PRNG),给定种子可重现序列,理论上可预测。真随机 需要硬件熵源(如 CPU 噪声、键鼠时序、Intel RDRAND 指令)。但伪随机对日常抽签完全够用——抽彩票/密码学场景才需要真随机。本工具用浏览器 crypto.getRandomValues(),已是密码学级随机(CSPRNG)。

    抽签结果为什么有时感觉"不公平"?

    人脑对随机分布有错觉——会觉得"连续抽中同一项"反常,但其实概率上完全可能。例如抛硬币 10 次连出 3 次正面是常见结果,不是不公平。判断真不公平:抽 100 次后某项的实际频率是否显著偏离理论概率(用 χ² 检验)。日常抽 5-10 次的小样本,频率波动是正常的。

    「允许重复」和「本轮不重复」有什么区别?

    两个开关作用范围不同——允许重复 控制单次抽签内部:抽 3 个人时同一个人能不能出现两次,默认关闭(一次抽出的 N 个互不相同)。本轮不重复 控制跨多次抽签:抽过的下次不再出现,直到点「重置本轮」开始新一轮。两者开启「本轮不重复」时「允许重复」会被自动禁用(语义冲突)。课堂点名典型用法:勾选「本轮不重复」,每次抽 1 人,全班轮完再重置。

    团队点名怎么避免"老抽到那几个"?

    默认随机抽必然会出现重复(小样本下都正常)。最直接的办法:开启 「本轮不重复」 ——抽过的人本轮不再出现,全班轮完再点「重置本轮」开始新一轮,保证每个人都被覆盖一次。需要给不同人不同概率(加权)的场景目前不支持,临时方案是把"想多抽到"的项在名单里写两遍。

    可以多人/多场景共用一份工具吗?

    可以。本工具支持多套独立名单——候选区右上角的名单按钮里可以新建多份(如"三年二班"、"年会抽奖"、"周会值日"),每份名单的候选项、设置(抽取数量、允许重复、本轮不重复状态)、历史记录都独立保存,切换互不影响。删除某份名单会一并清除它的历史,操作前会二次确认。

    能不能抽数字范围(如 1-100 抽 5 个)?

    可以。候选区下方有「数字范围」按钮,点开后输入起止(如 1—100)和是否补零,点「填入」就把整段数字追加到当前候选区,再按正常抽签流程抽即可。统计学场景(蒙特卡洛模拟、随机采样)建议用 Python numpy.random,本工具偏向日常用。