跳到主要内容
AZ Tools

扑克牌发牌器

加载时构建全新标准牌堆,用 crypto.getRandomValues 洗牌使每张牌的位置真正均匀,并允许你从顶部抽牌。已抽出的牌不再回到牌堆 — 牌堆计数减少 — 你可以一路发到牌堆为空都不会出现重复。适用于在线纸牌游戏、魔术表演、按花色颜色加权的决策,或纯粹用于教学概率。

牌堆剩余: 52

按抽牌发牌。

洗牌使用 crypto.getRandomValues + Fisher-Yates。抽出的牌在重置或重新洗牌前不会回到牌堆。

使用方法

  1. 设置要抽几张牌以及是否包含大小王。
  2. 「抽牌」从当前牌堆中取出对应张数;「重新洗牌后抽」会先重新洗一副新牌堆。
  3. 「重置」只洗一副新牌堆,不抽任何牌。

常见问题

洗牌真的是随机的吗?
每次交换使用 crypto.getRandomValues,这在现代浏览器中是 CSPRNG。Fisher-Yates 算法对每个位置只触碰一次,因此牌堆的每种排列等概率。
同花色内的牌顺序?
A、2、3、…、10、J、Q、K — 此处把 A 当作 1(最小)。若需扑克牌型中的 A 视为最大,只需记住 A 与 K 在两端即可。
我抽到的牌里有对子还有顺子,是洗牌坏了吗?
不是,公平的洗牌本来就是这个样子。均匀随机产生「扎堆」的频率远高于直觉的预期:在 52 张牌里,两张同点数的牌前后靠近,或者三张连着出现,都是很普通的事。反倒是从不出现这些情况的洗牌才可疑,因为人手工编造的顺序,均匀得一眼就能看出来。
刷新页面后牌堆会重置吗?
会。每次页面加载都会重新建牌并洗牌,已抽出的记录只存在于当前打开的页面里。发牌途中刷新就等于开了一副新牌,之前抽过的牌可能再次出现——如果这一点对你正在做的事很重要,请先发完再刷新。

相关工具