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

    随机抽签工具 从候选项列表或数字范围内随机抽取,支持洗牌不重复、加权概率、批量抽多个。基于浏览器密码学级随机源(crypto.getRandomValues())。

    两种抽签模式

    模式用法
    候选项输入候选项列表,抽 N 个抽中午吃什么
    数字指定范围(如 1-100),抽 N 个抽奖号

    抽签算法选择

    • 可重复抽(带放回):每次独立随机,可能连续抽中同一项
    • 不可重复抽(不放回 / Fisher-Yates 洗牌):保证抽出的不重复
    • 加权抽:候选项设权重,权重越高被抽中概率越大

    伪随机 vs 真随机

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

    本工具用 crypto.getRandomValues(),对抽奖、抽签、随机点名都安全。

    避免”重复抽中同一人”的实战技巧

    • 选”不可重复模式”,所有人都被抽过才重置
    • 给已抽过的人临时降权重
    • 把团队分批,每批内独立抽签

    📍使用场景

    • 抽签做决定选择困难时(吃什么、看哪部电影)让随机数帮你决定。
    • 团队随机点名培训/课堂从名单里随机抽人答题、做分享。
    • 抽奖活动群里小型抽奖、家庭聚会游戏的随机选人/选奖品。

    常见问题

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

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

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

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

    怎么实现"不重复抽签"?

    两种算法——洗牌法(Fisher-Yates shuffle):把所有候选项随机打乱顺序,依次取出,保证不重复且公平。记录法:每次抽完把已抽的从池子移除,再从剩余里抽。本工具默认洗牌法(更高效)。如果想"抽完一轮后重新洗"循环,开启"放回模式"。

    加权抽签怎么做(不同候选项概率不同)?

    常见做法——累计区间法:把每项的权重加起来作为总区间,随机数落在哪段就抽中哪个。例如 A 权重 5、B 权重 3、C 权重 2 → 总 10,0-4 抽 A、5-7 抽 B、8-9 抽 C。本工具支持给候选项设权重,权重越高被抽中概率越大。

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

    默认随机抽必然会出现重复(小样本下)。改进方案——(1) 不重复模式:每个人最多抽 1 次,全部抽完才重置;(2) 降权重抽:被抽过的人下次权重降低;(3) 分批轮次:把团队分成几批,每批内独立抽签,全部用完再轮下一批。本工具支持模式切换。

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

    可以。本工具支持两种模式——候选项抽签:从你输入的列表里抽(人名、菜单、选项等);数字抽签:指定范围 + 抽几个 + 是否重复,常用于抽奖号、模拟掷骰子。统计学场景(蒙特卡洛模拟、随机采样)建议用 Python `numpy.random`,本工具偏向日常用。