隨機數字產生器如何運作?
隨機數字產生器產生無可預測模式的值。此工具透過 Web Crypto API 的 crypto.getRandomValues,從作業系統硬體熵源提取隨機性,不靠數學公式。Math.random() 是偽隨機數字產生器(PRNG),種子已知就能預測輸出;Web Crypto API 產生的則是密碼學安全的整數。輸入最小值、最大值和數量後,產生器用拒絕抽樣法把原始熵位元組映射到指定範圍。任何範圍大小都在 1 毫秒內回傳結果,全程在瀏覽器中運行,不傳資料到伺服器。
隨機數字會顯示在這裡
隨機數字產生器產生無可預測模式的值。此工具透過 Web Crypto API 的 crypto.getRandomValues,從作業系統硬體熵源提取隨機性,不靠數學公式。Math.random() 是偽隨機數字產生器(PRNG),種子已知就能預測輸出;Web Crypto API 產生的則是密碼學安全的整數。輸入最小值、最大值和數量後,產生器用拒絕抽樣法把原始熵位元組映射到指定範圍。任何範圍大小都在 1 毫秒內回傳結果,全程在瀏覽器中運行,不傳資料到伺服器。
用途比想像中多。教師拿來點名或隨機排座位,開發人員用隨機輸入做模糊測試和邊界案例覆蓋。抽獎是最明顯的場景,統計抽樣也少不了:隨機挑選調查、A/B 測試或研究的參與者。遊戲設計師擲骰子、洗牌、隨機化生成位置。打破平局或打亂簡報順序也用得上。 NIST 隨機位元產生 專案指出,高品質隨機性是安全系統的基礎。此工具全程使用 crypto.getRandomValues,輸出適用於上述所有場景。
真隨機數字產生器(TRNG)從無法重現的物理過程取得隨機性,像是熱雜訊、放射性衰變、大氣測量。偽隨機數字產生器(PRNG)靠確定性演算法從種子展開序列,同一個種子必定產出同一串數字。密碼學安全的 PRNG(CSPRNG)在每次呼叫時混入作業系統的硬體熵,讓序列在計算上無法預測。
這個區別在安全敏感的場合才真正重要。JavaScript 的 Math.random() 是標準 PRNG,速度快但內部狀態一旦暴露就可預測。Web Crypto API 每次呼叫都混入硬體熵,輸出符合 NIST SP 800-22 隨機性測試套件的標準。用在遊戲、抽獎和課堂點名綽綽有餘。密碼學金鑰產生需要硬體安全模組,那是另一個層級的問題。
所有處理皆在您的瀏覽器中完成,不會傳送任何資料至伺服器。