Существует общепринятое обходное решение, позволяющее получить от getRandomValues() традиционные значения в диапазоне от 0 до 1. Суть его в том, чтобы разделить случайное значение на максимально возможное число, которое может быть представлено этим типом данных:
const randomBuffer = new Uint32Array(1);
window.crypto.getRandomValues(randomBuffer);
const randomFraction = randomBuffer[0] / (0xffffffff + 1);
Теперь можно работать с randomFraction точно так же, как с числами, полученными от Math.random()