关于 RandomKit

为什么做 RandomKit

RandomKit 的起点是一个有点丢人的常见问题:决定不了。下班去哪吃饭、谁去洗碗、三部同样一般的电影到底看哪一部——这种时候真正管用的往往不是"更聪明的意见",而是一枚谁都没法抬杠的硬币。

但越往下看,需求就越不止于吃饭这种小事:不想显得偏心的老师要随机点名;跑团的玩家要一次掷出八颗骰子;公司搞年会抽奖,又不想把员工名单交给某个免费抽奖网站;朋友之间玩秘密圣诞老人,不希望配对结果提前泄露。我们在网上找到的"随机工具"要么要求注册,要么要把名单传到服务器,要么就是十兆追踪脚本包一层小函数。于是我们干脆做了自己想用的那一版。

它和别的随机工具差在哪

大多数"随机抽取"网站无非两类:要么是把你的名单传回服务器的薄壳工具,要么是变着法子想让你注册账号的花哨应用。RandomKit 两样都不是。

  • 不用 AI,只用算法。 中间没有任何模型参与。抛硬币就是 Math.random() < 0.5;洗牌就是对数组跑一遍 Fisher–Yates。每一行逻辑都可读,公平性你自己就能审。
  • 始终本地执行。 你贴进来的名单、搭好的转盘、要跑的抽奖——全都不上传。工具根本不会去调用接收你输入的服务端接口,因为不存在这个接口。
  • 不建账号,不搞付费墙。 没有注册门槛,没有"花 4.99 美元把抽奖结果存到云端",免费档也不打水印。工具本身就是产品,且完全免费。
  • 中英双语从第一天就有。 每款工具都有英文和完整的中文路径(/zh/...),不是事后机翻凑出来的。

这里有哪些工具

一共 15 款工具,按大家实际的使用方式分成四类:

决策工具 🎯

抛硬币转盘抽奖Yes/No 决策——解决日常的小选择。谁选电影抛个硬币,挑餐厅转个盘,或者干脆让 Yes/No 替你拍板。

游戏趣味 🎮

骰子模拟器(D4 到 D100,跑团夜里一次掷多颗)和随机抽牌(标准 52 张牌,扑克练习、魔术、赌饭局都行)。

随机生成 ⚡

随机数随机字母随机颜色随机单词随机国家——选好范围或类别,直接出结果。做示例数据、课堂练习、设计取色、"这周了解哪个国家"都派得上用场。

抽取工具 🎪

随机点名(课堂点名最常用)、随机分组(把全班或全公司公平地分小组)、列表打乱(任意列表洗牌)、抽奖器(多奖项抽奖,无需注册)、秘密圣诞老人(带互斥规则的配对,全程本地运算)。

我们对随机性的看法

RandomKit 对自己提供的是哪种随机性很坦诚。我们用浏览器自带的 Math.random() 作为核心伪随机源,对所有列表重排使用 Fisher–Yates(Knuth)洗牌。对于这些工具要做的事——点一个名字、抛一次硬币、掷一颗骰子、分一支队伍——Math.random() 是恰当的折中:速度快、到处都能用、在数百万次抽取上统计均匀。

我们不假装自己是加密级随机源。如果你要生成安全令牌、密码或会话密钥,请用 crypto.getRandomValues() 或硬件随机数发生器,而不是一个决策转盘。这里的公平性保证是"在课堂规模的抽取上检测不出偏差",而这正是这些工具被做出来要干的活。

隐私是设计出来的,不是补上去的

隐私不是事后补上去的一节,而是这些工具一开始就在本地运行的理由。一个把朋友名单传到陌生人服务器的秘密圣诞老人工具,本身就违背了它存在的意义;一个会记录每份班级名单的点名器,是任何老师都不该接受的隐患。让每一次抽取都留在你的浏览器里,RandomKit 在大多数隐私问题被提出之前就把它们消解掉了。完整细节见 隐私政策页面。