The benchmarks I linked to imply that even getting your random numbers straight out of &#x2F;dev&#x2F;urandom is fine, even for the &quot;trivial stuff&quot;.<p>On my current machine (Chrome 47, new-ish MacBook Pro), it takes me 4 seconds to run `for (var i = 0; i &lt; 1000000; i++) {Math.random()}`. Each call to Math.random() generates an 8-byte floating point number, and it takes 0.6 seconds to `dd if=&#x2F;dev&#x2F;urandom bs=8 count=1000000 of=&#x2F;dev&#x2F;null`. If you don&#x27;t want to buffer, and switch it to a million 8-byte reads, it goes up to 1.5 seconds. I don&#x27;t think the system call overhead is a problem here.