擲骰子工具

從擲硬幣的 d2 到 d1000,可投擲 1 到 20 個任意面數的虛擬骰子。每次投擲都在您的瀏覽器中進行,使用密碼學上安全的隨機數,並自動為您計算總和。

按下產生以抽選
進階選項

弄丟了桌遊的骰子,或者在角色扮演 (role-playing) 遊戲進行中需要一個 d20 嗎?這個免費的線上擲骰子工具可以替代您手邊缺少的任何骰子。在「骰子」欄位中,設定您想投擲多少個骰子 — 1 到 20 之間的任何數字 — 在「面數」欄位中指定每個骰子有多少個面,然後點擊「產生」。該頁面在打開時會顯示兩個普通的六面骰子,因此第一次投擲只需點擊一下即可。每個骰子都會單獨顯示,並且整個投擲的總和會直接顯示在它們下方,這樣即使是 3d6 也不再需要心算。

每次投擲都是由您的瀏覽器透過 Web Crypto API (crypto.getRandomValues) 執行的,它直接從您自己系統的隨機源中提取密碼學上強大的隨機值,而不是使用像 Math.random() 這樣的偽隨機 JavaScript 函數。將 32 位元原始值轉換為面數,正是虛擬骰子經常悄悄犯錯的地方:將該值除以面數並取餘數 (modulo) 是最顯而易見的方法,但它也帶有偏差,因為如果 2^32 不能被面數整除,較低的面出現的頻率會略高於其他面。這種缺陷被稱為 modulo bias,它是可以測量的,而不僅僅是理論上的。相反,這個工具會丟棄任何超出面數的最大精確倍數的值並重新抽取 — 這種技術被稱為 rejection sampling。它需要一些額外的抽取,但它保證了準確性而不是近似值。沒有任何資料被發送到伺服器,沒有任何紀錄被儲存,而且一旦頁面載入完畢,即使您的網際網路連線斷開,您的投擲也將繼續運作。

這兩個欄位完成了所有的工作,它們直接對應於遊戲中已經使用的骰子符號。「骰子」意味著您一次投擲的數量,從 1 到 20。「面數」意味著每個骰子擁有多少個面,從 2 到 1000 — 這足以滿足 d2 擲硬幣、完整的角色扮演套組 (d4, d6, d8, d10, d12 和 d20)、百分比 d100,以及遊戲可能發明的超出這些範圍的任何其他東西。任何以 NdM 格式編寫的內容實際上也就是這兩個欄位:2d6 意味著將「骰子」設定為 2,將「面數」設定為 6,而單獨的 d20 意味著「骰子」為 1,「面數」為 20。要為一個角色屬性投擲 3d6 嗎?將「骰子」設定為 3,「面數」設定為 6,點擊「產生」,所有三個面將與它們的總和一起出現。兩個開關改變了結果的外觀,而不是其內容。「3D 動畫骰子」預設是開啟的,它會為每個骰子繪製一個在空中旋轉的立方體直到它停下來 — 關閉它,數字將作為簡單的列表立即出現。「隨機顏色」賦予每個骰子自己獨特的顏色,而不是標準的紅色,並且這僅在開啟「3D 動畫骰子」時有效,因為簡單列表沒有骰子可供上色。只有六面骰子會繪製點數;對於任何其他類型,投出的數字直接顯示在其表面上,因為十七面骰子沒有標準的點數佈局。

結果下方的一行使您免於計算:Σ 是投擲中包含的每個骰子的總和,後面跟著投擲花費的時間以及它是在本機 產生的提示。「全部複製」按鈕將結果發送到您的剪貼簿,「儲存為檔案」將其寫入文字檔案 — 兩者都提供每個單獨的面,每行一個,而不僅僅是總和,這樣投出內容的紀錄仍然是投出內容的紀錄。「紀錄」將您最近的 10 次投擲直接保留在瀏覽器中:點擊其中一個即可將其連同總和帶回螢幕,複製或刪除單個項目,或在需要時清除整個列表。「清除」按鈕會清空結果視窗,但會保持您的設定不變。

虛擬骰子比實體骰子更好嗎?就公平而言 — 是的,原因是物理上的。一個普通的模製骰子是被鑽孔並塗漆的,每個鑽出的孔都會帶走少量的材料,所以數字六那一面 — 有了它的六個孔 — 變成了稍微最輕的一面,而它相對的面變成了稍微最重的一面。賭場的 precision dice (精密骰子) 正是因為這個原因而存在的:它們的點是用密度相等的材料在平坦的表面上填充的,它們的邊緣被切割成直角而不是圓角,它們的加工精度達到幾分之一毫米,即便如此,在幾個小時的遊戲後它們還是會被淘汰出局。桌遊盒子裡的骰子沒有任何這些特性,並且會隨著時間的推移而磨損 — 碎裂的角,由於多年手部摩擦而變圓的邊緣,在毯子上而不是桌子上投擲的骰子,這些在現實中遠非隨機。虛擬骰子沒有可能出錯的幾何形狀,它不會磨損,也不提供爭論投擲技巧的空間,並且它在第一萬次投擲時的表現與第一次完全相同。它做不到的 — 舒舒服服地待在您的手掌中。一個誠實的結論是,這個產生器在公平性上獲勝,但在儀式感上落敗。

一個公平的骰子和一個公平的總和並不相同。單個骰子的每一面都有相等的機率落下,但是當您開始將骰子相加時,那些總和就失去了這種平等性,這總是讓人感到驚訝。兩個六面骰子落下會形成 36 種可能性相等的組合;其中正好有 6 種組合加起來是 7,而只有一種方法可以得到 2,也只有正好一種方法可以得到 12 — 所以 7 出現的頻率是 12 的六倍,即使對於完全公平的骰子也是如此。添加第三個骰子會進一步縮小這種模式,迫使 3d6 的結果聚集在中間,這就是為什麼遊戲設計師 在需要數值保持平均而不是走向極端時使用這種方法的原因。單個六面骰子的平均值正好是 3.5,這使得 2d6 的平均值為 7,3d6 的平均值為 10.5,而在遊戲桌上,這種數學計算通常比任何機率都更有用。這些都不是缺陷或偏差:投擲多個骰子相加本來就是這樣運作的,這就是為什麼遊戲會要求使用 2d6 而不是單個 d12,即使兩者涵蓋的範圍非常相似。

骰子沒有記憶。連續四次投出六,絲毫不會降低第五次投出六的可能性;一個整個晚上都沒有出現過一次 1 的骰子並沒有因此就賺到一個 1,也不存在某個特定面「輪到」出現這種說法 — 每次投擲都完全獨立於前一次投擲,骰子不知道它一分鐘前做了什麼。宣稱與之相反的直覺被稱為 gambler's fallacy (賭徒謬誤),正是這種直覺解釋了為什麼我們在自己編造骰子結果時表現得如此糟糕:當被要求寫下一系列可信的投擲序列時,我們會避免重複,我們在高數字和低數字之間交替,我們比真正的隨機性 將它們分布得更均勻。另一方面,真正的隨機性會產生簇、長串相同的數字,以及沒有重複的長時間間隔。那串看起來可疑地整齊的序列,實際上是人類的指紋。

為什麼選擇這個擲骰子工具?

骰子出現在遊戲需要一個無人能選擇的數字的任何地方。桌上角色扮演玩家用 d20 進行攻擊,為角色屬性投擲 3d6,為百分比檢定投擲 d100,即使丟了一半骰子袋的隊伍也可以毫無阻礙地繼續他們的遊戲。飛行棋和其他攤在廚房桌子上的桌遊,在骰子遺失後以同樣的方式繼續 — 只需將「面數」設定為 6,將「骰子」設定為 2,然後繼續玩。遠端遊戲的隊伍在一個共享螢幕上投擲骰子,以便每個人都能在骰子停下時看到落下了哪些面。小學老師們開展經典的機率課堂教學:投擲 2d6 正好 60 次,計算總和,然後看著模式在黑板上自行繪製出來。遊戲設計師在遊戲付印之前,測試某個機制給出的結果是否真的像感覺的那樣大起大落。大量簡單的投擲只是用來決定誰先玩、誰買咖啡或兩個計畫中哪一個獲勝 — 這些都是交給命運做出的決定,人們幾千年來一直透過骰子來解決。

這個工具有一些應該知曉的明確限制。每次投擲只使用一種類型的骰子:「面數」欄位中的值適用於該次投擲中的每一個骰子,因此將 d20 和 d6 一起投擲需要兩次單獨的投擲,而不是一次。這裡沒有修正值,沒有優勢 (advantage) 或劣勢 (disadvantage) 投擲,沒有爆炸骰子 (exploding dice),也沒有輸入骰子符號的文字方塊 — 您得到的是落下的面和總和,在此之後添加的任何規則由您自己處理。Σ 計算投擲中包含的每個骰子,並且「全部複製」和「儲存為檔案」按鈕寫下每個單獨的面而不是總和。無論面數多少,動畫始終顯示一個六面立方體,因為它純粹是為了裝飾:它停止的地方是工具在此之前早已產生的投擲結果。投擲是在您的裝置上本機 發生的,因此在遠端遊戲時,由一個人投擲並共享他們自己的螢幕 — 該工具產生的是您可以自己解釋的投擲,而不是第三方可以為您背書的投擲。而且,當然,一個密碼學上公平的骰子僅僅是一個公平的骰子:它與任何彩券或賭場抽獎沒有任何聯繫,也不給予任何人任何優勢。在這些限制範圍內,保證是堅如磐石的 — 任何骰子的任何一面在任何一次投擲中落下的機率都是完全相等的。

FAQ

我如何線上擲骰子?

在「骰子」欄位中,設定您想投擲多少個骰子,在「面數」欄位中指定每個骰子有多少個面,然後點擊「產生」。該頁面在打開時會顯示兩個普通的六面骰子,因此投擲 2d6 只需點擊一下即可。每個骰子都會單獨顯示,並且整個投擲的總和會直接顯示在它們下方。

虛擬骰子真的是隨機的嗎?

是的。每次投擲都來自您瀏覽器的 Web Crypto API (crypto.getRandomValues) — 這是當需要數學上不可預測的隨機性 時所使用的相同密碼學安全源。原始值使用 rejection sampling 技術被轉換為各個面,這徹底消除了更簡單方法中存在的 modulo bias 缺陷。在任何投擲中,每一面的機率都是完美均等的。

我可以投擲什麼骰子?

從 1 到 20 個骰子,每個骰子有 2 到 1000 個面的任何組合:從 d2 擲硬幣開始,到完整的角色扮演套組 (d4, d6, d8, d10, d12 和 d20)、百分比 d100,以及遊戲在 d1000 限制內可以發明的任何骰子。骰子符號直接對應到這兩個欄位 — 2d6 意味著「骰子」為 2,「面數」為 6。

工具會顯示骰子的總和嗎?

是的。結果下方的行以 Σ 開頭,指出了您投擲中每個骰子的總和,因此當您投擲 3d6 或 4d10 時,您不需要在腦海中進行計算。如果您複製或儲存結果,您將在單獨的行上分別得到每一個面;不過,總和仍然留在結果框下方的那一行裡。

我可以把它用於 D&D 和其他桌上 RPG 遊戲嗎?

是的,這是它最常見的用途之一。將「骰子」設定為 1,「面數」設定為 20 用於您的攻擊或豁免檢定投擲,然後將「骰子」設定為 3,「面數」設定為 6 用於屬性點數,並將「面數」更改為 100 用於百分比檢定。這些投擲是密碼學安全的,因此它們絕對比您從骰子袋底部翻出來的那個磨損的 d20 更可靠。

我可以在同一次投擲中將一個 d20 和一個 d6 一起投擲嗎?

不能。「面數」欄位中的值適用於該次投擲中的每一個骰子,因此混合骰子需要針對每種類型進行單獨的投擲 — 先投出您的 d20,然後將「面數」更改為 6,再點擊一次按鈕。另請注意,這裡沒有用於修正值 或優勢 (advantage) 投擲的工具:它為您提供落下的面和總和,在此之後添加的任何規則由您自己處理。

我打開了「隨機顏色」,但什麼也沒改變。這是為什麼?

因為顏色只對動畫骰子有影響。如果「3D 動畫骰子」被關閉,結果將作為一個帶有數字的簡單列表輸出,所以那裡沒有骰子可以上色。重新打開動畫,您會發現每個立方體都帶有各自獨立的顏色,而不是標準的紅色。

「3D 動畫骰子」開關的作用是什麼?

如果開啟它 — 它預設是開啟的 — 它會為每個骰子繪製一個在空中旋轉的 3D 立方體,直到它停下來。關閉它,數字將作為簡單的列表立即出現,當您連續快速進行大量投擲時,這是一個非常快捷的選擇。無論哪種方式,動畫純粹是為了裝飾:在立方體開始旋轉之前,引擎就已經決定了結果。六面骰子是使用標準的點數 佈局繪製的,而對於任何其他類型,落下的數字直接顯示在其表面上。

虛擬骰子真的比實體骰子更公平嗎?

就純粹的公平性而言 — 是的。一個普通的模製骰子是被鑽孔並塗漆的,這使其各個面的平衡不完美,而且它們的邊緣會隨著使用變得越來越圓 — 賭場的 precision dice (精密骰子) 正是因為這個原因而採用鋒利的邊緣和平坦的填充物製造,但即便如此,它們在幾個小時的遊戲後仍然會被淘汰出局。虛擬骰子永遠不會磨損,因此任何一面在其第一萬次投擲時落下的機率與其在第一次投擲時完全一樣完美。

為什麼投擲兩個骰子時 7 這麼容易出現?

因為可能性均等的面,在相加時並不會產生可能性均等的總和。兩個六面骰子落下會形成 36 種可能性相等的組合,其中有 6 種組合加起來是 7 (1+6, 2+5, 3+4 及其反轉),而只有一種方法可以得到 12。這種六比一的比例就是差異背後的原因,並且即使對於完全公平的骰子,這也始終成立。

我連續四次投出了 6。工具壞了嗎?

沒有。每次投擲都完全獨立於前一次,所以在一個 d6 上連續得到四個 6 的機率是 1296 分之一 — 今晚對您來說這是一個罕見的事件,但看看今天全世界所有在擲骰子的人,這是極其常見且完全在意料之中的。骰子沒有記憶,也不存在某個特定面該出現了這種說法。在高數字和低數字之間交替出現,實際上才是非常可疑的。

如果我離線,這個工具還能工作嗎?它會記住我過去的投擲嗎?它要收費嗎?

頁面載入完畢後,投擲完全在您的瀏覽器中進行,因此如果您失去網際網路連線,您的遊戲不會受到干擾。「紀錄」將您最近的 10 次投擲安全地保存在您的裝置上,您可以隨時恢復、複製或刪除它們。這個工具完全免費,無需註冊,由於沒有資料被發送到我們的伺服器,所以即使我們想看,我們也看不到您投擲了什麼。