一、抽签与转盘的核心差别是放回还是不放回
站内两个抽选工具看起来只是形态不同,实际对应两种不同的概率模型,选错了会直接影响公平性。
- 随机抽奖工具:默认不放回。它按奖项抽取,一个奖项要抽 3 个人,就从可参与名单里连续取 3 个不重复的人。实现上是每取一个就把这个人从临时池里删掉,所以同一次抽取里绝不会出现同一个名字两次。抽完之后,中奖者默认从后续奖项的可参与池里排除,也就是「一人只能中一个奖」。想改成允许一人中多个奖,可以打开「允许重复中奖」开关。
- 转盘抽奖:默认放回。每次转动都是从当前全部扇区里独立抽一次,转两次抽到同一项完全正常。需要不重复时要主动勾选「中奖后从转盘移除」,中奖项会从选项文本里删掉,下一次就不会再出现。
这个差别决定了各自的适用场景。年会、班会那种「逐个奖项抽、一人一次」的场合用随机抽奖工具,因为它天然处理奖项分级、中奖名额与去重,而且可参与人数不够奖项数量时会直接拦住不让抽。「今晚吃啥、谁去买咖啡」这类一次性决策用转盘抽奖,可视化更直观,也不需要维护名单状态。
另外要留意一件事:不放回抽样里,后抽的人中奖概率其实比先抽的高。100 人抽 1 个一等奖,每人 1% 的概率;一等奖抽完后剩 99 人抽 2 个二等奖,每人的二等奖概率是 2/99,比 2/100 略高。这不是 bug,是不放回抽样的数学性质,只要抽取顺序和规则事先公布就是公平的。
二、权重怎么加:转盘只能靠重复行数
两个工具都不提供权重输入框,每一项的概率完全相同。转盘的扇区是等分的,抽奖名单里每个名字也是等权的。
需要不同概率时,办法是把权重高的选项写成多行。想让「加班」的概率是「下班」的三倍,就写:
加班
加班
加班
下班
转盘会画出 4 个等分扇区,其中 3 个写着加班,等效于 75% 的概率。这个办法直观但有硬上限:转盘只支持 2 到 16 项,超过 16 项时扇区太窄、文字看不清,工具只取前 16 项参与转动。所以能表达的最小权重粒度是 1/16,想做 1% 精度的加权,这个工具做不到。
随机抽奖工具的名单没有这个 16 项限制,同一个名字写多行同样能提高它被抽中的概率,但要注意它和「不允许重复中奖」的交互:排除中奖者时是按名字匹配的,重复写的行会被一起排除掉。
顺带说一个更轻量的场景。今天吃什么 内置了八大菜系每系 10 道共 80 道家常菜,默认勾选川菜、粤菜、湘菜、鲁菜四系,点一次给一道,带难度、耗时和主要食材。它是放回抽取,连续点两次抽到同一道是正常的。自己常吃的菜可以加进自定义菜品,存在本机浏览器里,下次打开还在。想缩小范围就取消勾选几个菜系,想只在自己的菜单里选就用自定义列表单独抽。
三、伪随机与「看起来不随机」
这两个工具的随机源都是浏览器的 Math.random(),它是伪随机数生成器:由内部状态经确定性算法推进,统计分布均匀,但不具备密码学安全性。用在抽奖娱乐、点菜、排序上完全足够;涉及真实资金、有对抗性动机的场合不该用它,那种场景需要可验证的随机源和第三方公证。
比这个更常见的问题是心理层面的:真随机看起来往往不像随机。10 个人抽 10 次,连续两次抽到同一个人的概率不低,人的直觉却会认为「这不可能是随机的」。真随机序列本身就允许成团、连号、长时间不出现某一项,反而是那种严格交替、均匀铺开的序列才是被人为安排过的。
转盘抽奖里还有一个专门为消除疑虑做的设计值得说明:它是先用随机数抽出结果,再倒推出转盘应该停在哪个角度,然后按 easeOutQuart 曲线转 4 到 6 圈、约 4 秒缓慢停下。也就是说动画只是把已经确定的结果演出来,指针停在哪就是真实结果,不存在「视觉上停在 A 但判定成 B」的情况。反过来说,这也意味着动画时长和圈数不影响结果,不必盯着转盘找规律。
四、活动抽奖前要公开的三件事
工具能保证抽取过程是随机的,但公平感来自流程透明。正式场合抽奖前,把这三件事先公布出来,事后几乎不会有争议:
- 完整名单和总人数。随机抽奖工具在名单框下方实时显示总计人数,也支持一键导入 TXT 文件(每行一个名字,导入的内容追加到现有名单后面)。开抽前把名单投屏,让大家确认自己在里面、确认没有多出来的人。
- 奖项结构与抽取顺序。奖池里每个奖项的名称和数量、以及先抽哪个奖项,都要事先说清。是从一等奖往下抽还是从三等奖往上抽,会影响每个人在各奖项上的概率分布,这属于规则的一部分。
- 一人能否中多个奖。也就是「允许重复中奖」开关的状态。默认是关闭的,一人只中一个;开着的话要提前讲明。
抽的过程中还有两个操作要谨慎使用。一是废弃:可以撤销某一次的抽奖结果,对应名额自动回归奖池,用于中奖人不在场、放弃资格这类情况。它是个正当功能,但必须当场说明理由,否则观感上就是「结果不满意就重抽」。二是重置抽奖:清掉全部历史重新开始,带二次确认,正式场合基本不该用。
还要提醒一点:随机抽奖工具的抽奖记录只存在当前页面,刷新即清空,不写入浏览器存储;转盘抽奖的抽取记录同样只保留在当前页面,最多 50 条。所以抽完要当场截图或抄下中奖名单,别指望刷新回来还能查到。
五、随机起名类工具:生成之后必须自己筛
起名类工具的定位和抽奖不同:它不是替你做决定,而是给你一批候选去挑。
随机网名生成器 提供 70 年代到 10 年代五档年代风格,加上二次元、古风、科技感共 8 种风格,每种风格对应一套自己的昵称库,再按长度档(2 到 3 字、3 到 4 字、4 到 5 字)随机组合和修饰。每个结果同时给出简体、繁体和火星文三种写法,可以单个复制。繁体转换优先走 OpenCC,失败时退回内置的映射表;火星文用 cnchar 转。
中文姓名生成器 的姓氏库是完整的百家姓五百多个,包含万俟、司马、欧阳、诸葛这类复姓。可以指定姓氏也可以留空随机,性别选男、女或随机,名字长度支持双字名、三字名、四字名,还能指定一个必须用到的字并选择它放在第一位还是最后一位。数量 1 到 50,支持单个复制、复制全部和下载。底层用的是 cnchar 的取名能力,按需动态加载,所以第一次点生成会略慢一点。
这类工具的边界必须讲清:
- 不去重、不查重名。生成 50 个结果里可能有重复,工具也完全不知道这个名字是不是已经被大量使用。要拿去注册账号或用作正式名字,得自己去搜一遍。
- 不做谐音和寓意检查。随机组合出来的字在普通话里可能谐音不雅,在方言里更难预料;单字寓意好的两个字连起来也可能整体别扭。念出声读三遍,是最有效的筛法。
- 不做生僻字和字形检查。生成结果里可能出现输入法难打、系统字体缺字、办证系统录不进去的字,正式用途要提前验证。
- 姓氏与名的搭配没有做声调协调。三个字全是同一个声调读起来会很平,这需要人工挑。
所以正确的用法是:一次生成 30 到 50 个,快速扫一遍留下 3 到 5 个感觉对的,再逐个做搜索、朗读和输入法测试。它省的是「想不出来」的时间,不是「挑」的时间。真人取名这种场景,工具只适合用来找灵感和用字方向,不适合直接采纳。
常见问题
转盘连续两次抽到同一项,是不是随机有问题?
不是。转盘默认是放回抽样,每次转动都从全部扇区里独立抽一次,之前的结果不影响这一次。4 个选项转两次抽到同一项的概率是 25%,一晚上转十几次出现连号几乎是必然的。真随机序列本来就允许成团和连号,看起来「不够均匀」恰恰是随机的特征。需要不重复就勾选「中奖后从转盘移除」,或者改用默认不放回的随机抽奖工具。
年会抽奖能不能保证一人只中一个奖?
可以,这是随机抽奖工具的默认行为。「允许重复中奖」开关默认关闭,中过奖的人会从后续奖项的可参与池里自动排除,可参与人数不足当前奖项名额时也会直接拦住不让抽。如果确实想让一个人有机会中多个奖,打开这个开关,但要在开抽前向所有人说明。
为什么这两个抽奖工具都不能设概率百分比?
因为它们的设计目标是简单直观,扇区等分和名单等权是最容易被现场所有人理解和验证的规则。需要加权时用重复行数来表达,转盘的粒度上限是 1/16,随机抽奖工具的名单没有这个限制。如果你需要精确到百分比的加权抽取,这类娱乐向工具都不适合,应该用能公示算法和随机数种子的方案。
生成的名字可以直接给孩子用或者直接注册账号吗?
不建议直接用。这两个工具都不去重、不查重名、不做谐音与寓意检查,也不验证生僻字能否被输入法和证件系统正常处理。它们的作用是快速给出一批候选,帮你跳过「完全想不出来」的阶段。挑中的候选一定要自己搜一遍重名情况、念出声听听谐音、用输入法打一遍确认能打出来,正式取名还应该结合家族用字和长辈意见。