Possibly ironically, here was the comment above the previous implementation<p><a href="https:&#x2F;&#x2F;chromium.googlesource.com&#x2F;v8&#x2F;v8&#x2F;+&#x2F;2755c5a1b1cf7fc4c5c614378e5231636e6dcff5%5E%21&#x2F;#F1" rel="nofollow">https:&#x2F;&#x2F;chromium.googlesource.com&#x2F;v8&#x2F;v8&#x2F;+&#x2F;2755c5a1b1cf7fc4c5...</a><p><pre><code>  &#x2F;&#x2F;
  &#x2F;&#x2F; This class is used to generate a stream of pseudorandom numbers. The class
  &#x2F;&#x2F; uses a 48-bit seed, which is modified using a linear congruential formula.
  &#x2F;&#x2F; (See Donald Knuth, The Art of Computer Programming, Volume 3, Section 3.2.1.)
</code></pre>
It&#x27;s still not entirely clear why this particular algorithm was chosen (it&#x27;d been cool if some explanation had been given in this blog post). I suspect the reason was related to the fact that, in javascript, you can only multiply two 16 bit numbers without fear of loss of precision (without doing a fair amount of gymnastics), and they wanted something they could easily port into pure javascript to be used as a optimizer test. As partial support for that theory, the new code has now been put back almost entirely into the C++ layer.<p>Then again, the author might be looking at that commit and wondering &quot;Why <i>did</i> we pick that algorithm?&quot; :)