LibraTool logoLibraTool

免費隨機數產生器

在任意範圍內產生隨機數、建立唯一數字列表或擲骰子。使用密碼學安全的隨機性。

載入後可離線使用

🔒 每個數字均使用瀏覽器的加密安全隨機數(crypto.getRandomValues)— 真正公平,而非可預測的 Math.random()。不傳輸任何資料。即便如此,請勿將這些數字用於加密金鑰產生、安全令牌或受監管的彩票/博彩應用,這些場景需要經過審計的硬體認證隨機源。

需要從名單中按名字抽出獲勝者,或者拋硬幣?使用拋硬幣、轉盤和名單抽選工具 →

工作原理

此工具產生的每個數字都來自 crypto.getRandomValues——瀏覽器的加密安全隨機源,與產生 TLS 金鑰所用的相同。在此之上有一個手寫的拒絕取樣演算法,消除簡單的 Math.random() % range 實現中常見的取模偏差,並透過 BigInt 運算支援大於 2^32 的範圍。

  1. 1
    設定範圍和模式
    在單個數字、批次列表(最多 1000 個)或多面骰子(d4 到 d100)之間選擇。對於列表,你還可以要求值不重複,並可選擇按升序排列輸出。
  2. 2
    crypto.getRandomValues 取得原始熵
    每個數字都從由瀏覽器加密 RNG 填充的 Uint32Array(範圍大於 2^32 時為 BigUint64Array)中抽取——而不是 Math.random()。然後拒絕取樣會丟棄可能造成分佈偏差的值,使範圍內的每個整數機率完全相等。
  3. 3
    不重複模式使用 Fisher-Yates 或拒絕追蹤
    開啟不重複模式且範圍可放入記憶體(最多 100,000 個值)時,工具會產生完整的數值池並用 Fisher-Yates 洗牌。對於非常大的範圍,則逐個抽取數值並跳過重複——避免建立數十億項陣列的記憶體開銷。
  4. 4
    結果帶動畫回饋呈現並保留在會話歷史中
    最終數值透過 requestAnimationFrame 以動畫方式出現(數字為老虎機捲動,骰子模式為翻滾的骰子),然後顯示在可捲動的歷史記錄中,隨時可以複製。任何內容都不會離開你的瀏覽器。

相關工具

常見問題