Since browser JS can't quite make real random numbers, the next best option is to use
https:// to go to a trusted server and get a random number straight from OpenSSL. That's what this is!
I run an instance of this at https://random.smalldata.org.
For a client side crypto library that hooks up to this, see ezcrypto-js.