Run details:
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36
Chrome 112
Mac OS X 10.15.7
Desktop
one year ago
Test name Executions per second
Math.random 7747610.5 Ops/sec
crypto.getRandomValues 857110.5 Ops/sec
Tests:
  • Math.random

    AخA
     
    return Math.floor(Math.random() * 50000)
  • crypto.getRandomValues

    x
     
    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;