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)