Tools100% 本地
← 所有工具
亂數產生器
crypto.getRandomValues · 均勻 · 瀏覽器內
從
crypto.getRandomValues 中抽取密碼學隨機的整數或小數。本頁使用拒絕取樣,所以結果在任意範圍內都均勻 — 沒有取模偏差。可設定範圍、數量、小數位、排序方式、輸出分隔符,以及「僅唯一」模式。
模式
範圍
數量
唯一
排序
格式
Click Generate
點擊複製—
為何這是「真亂數」
瀏覽器暴露兩種隨機來源:Math.random(),一個快速但每次執行確定的偽亂數產生器;以及 crypto.getRandomValues(),一個由作業系統熵池播種的密碼學安全 RNG — 與產生 TLS 工作階段金鑰使用的來源相同。本頁對你抽取的每個值都使用後者。
避免取模偏差
簡單的「由 RNG 產生整數」實作會做 rand() % n — 當 n 不能整除 RNG 字長時,這會讓範圍低端略受偏向。偏差很小但真實存在,在百萬級取樣下可被輕易偵測出來。
小數模式
當你請求小數時,本頁從 crypto.getRandomValues 中讀 53 位元、得到 [0, 1) 的均勻值,再縮放到目標範圍。最多可用 15 位精度 — 這是 IEEE-754 雙精度浮點數的實際上限,也就是 JavaScript 的數值型別。
唯一模式
開啟不允許重複後,本頁對整數範圍執行部分 Fisher–Yates 洗牌,這能保證抽到的唯一值均勻分布 — 這是無放回公平取樣的標準做法(也是洗牌或不重抽的抽獎所用演算法)。
隱私
所有值都在本地產生。本頁在最初的靜態資源載入之後不發任何網路請求,也沒有分析腳本。你的輸入與產生的值都不會離開頁面。