If your want to use JavaScript Numbers, you can try my library randomcryp. This library uses Crypto.getRandomValues() to generate cryptographically secure random numbers with 53 bits of precision. Which should be the highest precision a JS Number can handle.