用途

抽獎、分組、隨機取樣、遊戲擲骰、決定順序,都可以用亂數產生器處理。設定範圍後產生,比自己「隨便想一個數字」公平得多——人腦選數字有明顯偏好,例如在 1 到 10 之間,被選中最多的是 7,最少的是 1 和 10。

不重複與可重複

兩種模式的用途完全不同。不重複用在抽獎名單、隨機分組、決定發言順序這類「一個蘿蔔一個坑」的情境;可重複用在擲骰子、模擬抽樣這類每次都獨立的情境。

如果要從 50 人中抽 5 個獎,選不重複;如果要模擬擲 5 次骰子,選可重複,因為同一個點數本來就可能出現多次。

偽亂數與真亂數

一般程式常用的 Math.random() 屬於可預測的偽亂數;本工具改用瀏覽器的 crypto.getRandomValues(),並以拒絕取樣避免範圍映射偏差,適合日常抽獎、分組與統計抽樣。

若涉及線上博弈、正式公證或密碼學金鑰,仍應使用具稽核紀錄與第三方驗證的專業系統,不能只依賴單一網頁畫面。

公開抽獎的實務建議

如果是要對外公布結果的抽獎,光「用亂數產生器抽的」很難取信於人。比較好的做法是採用事後可驗證的方式:例如事先公告「以某期統一發票特別獎號碼的末三碼決定得獎序號」,或全程錄影公開執行過程。

另外抽獎名單要先編號並公開總數,抽出後才對應到人。先看名單再抽,即使真的是隨機,也難以自證清白。

常見誤解

「上次抽到 7,這次比較不可能再抽到 7」——在可重複模式下這是錯的。每次抽取彼此獨立,骰子沒有記憶。連續出現相同數字看起來反常,但在足夠多次的抽取中反而是必然會發生的。

反過來說,真正的隨機序列常常看起來「不夠隨機」——會有連號、會有重複、會有一段時間某個數字特別多。刻意避開這些的序列,其實才是人為的。

你可能也會用到:密碼產生器排列組合計算機機率計算機