Test name | Executions per second |
---|---|
Math.random | 7747610.5 Ops/sec |
crypto.getRandomValues | 857110.5 Ops/sec |
return Math.floor(Math.random() * 50000)
const range = 5000
const randomBuffer = new Uint32Array(1);
window.crypto.getRandomValues(randomBuffer);
const randomNumber = randomBuffer[0];
const scaledRandomNumber = Math.floor(randomNumber / (Math.pow(2, 32) / range));
return scaledRandomNumber;