There's Math.random(), and then there's Math.random()
It seems to me that defaulting to a non-CSPRNG these days is a premature optimization: for many purposes a decent CSPRNG (e.g. Fortuna) is fast enough, and avoids all the pitfalls of a non-secure or poorly-random generator.Maybe it's time to have Math.random and equivalents call a CSPRNG, with a Math.insecurerandom when performance matters?