123456789101112131415161718 |
- module.exports = (function (global) {
- var uint32 = 'Uint32Array' in global
- var crypto = global.crypto || global.msCrypto
- var rando = crypto && typeof crypto.getRandomValues === 'function'
- var good = uint32 && crypto && rando
- if (!good) return Math.random
-
- var arr = new Uint32Array(1)
- var max = Math.pow(2, 32)
- function random () {
- crypto.getRandomValues(arr)
- return arr[0] / max
- }
-
- random.cryptographic = true
- return random
- })(typeof self !== 'undefined' ? self : window)
|