隨機數產生器
選項
輸出
技術細節
隨機數產生器的運作方式
工具功能說明
隨機數產生器使用 Web Crypto API(crypto.getRandomValues)產生密碼學強度的隨機整數或浮點數。它採用拒絕取樣以消除模數偏差,確保在任何指定範圍內都能均勻分布。你可以產生單一數值或一批隨機數,並可設定最小值、最大值與精度。
常見的開發者使用情境
開發者會在需要安全性的任務中使用密碼學隨機數產生器,例如產生不可猜測的工作階段權杖、nonce、樂透選號,或從資料集進行隨機抽樣。遊戲開發者在公平性重要時,會用於擲骰與程序化生成。QA 工程師會產生隨機測試輸入以進行模糊測試,而資料科學家在不需要可重現性時,會用於隨機抽樣。
資料格式、型別或變體
此工具支援在任意範圍內(含端點)的整數生成,以及可設定小數精度的浮點數生成。當範圍無法平均分割隨機來源的輸出空間時,拒絕取樣會捨棄會造成模數偏差的數值。底層熵來自作業系統的 CSPRNG(Windows 上的 CryptGenRandom、Unix 上的 /dev/urandom),並透過瀏覽器的 Web Crypto API 提供。
常見陷阱與邊界情況
密碼學隨機性比 Math.random() 慢,且對於像是洗牌播放清單這類非安全用途並不必要。對於某些病態範圍,拒絕取樣理論上可能迴圈很多次,但實務上可忽略。瀏覽器產生的隨機數無法設定種子以達到可重現性——若你需要用於測試的確定性序列,請改用可設定種子的 PRNG。最大安全整數範圍受 JavaScript 的 Number.MAX_SAFE_INTEGER(2^53 - 1)限制。
何時使用此工具 vs 程式碼
當你需要快速取得一次性、無偏的隨機數,用於臨時決策、手動測試,或驗證你自己的實作是否在預期範圍內產生數值時,可使用此瀏覽器工具。正式環境中,請在程式碼中直接呼叫 crypto.getRandomValues(),或使用語言原生的 CSPRNG 函式(Python 的 secrets 模組、Java 的 SecureRandom),以便與你的應用程式錯誤處理與記錄整合。