edit: sbierwagen points out below that my comment is wrong, the source was pointed out, I just missed it.<p>&gt; A worth to read article by [Mike Malone](<a href="https:&#x2F;&#x2F;medium.com&#x2F;@betable&#x2F;tifu-by-using-math-random-f1c308c4fd9d#.a7ewychse" rel="nofollow">https:&#x2F;&#x2F;medium.com&#x2F;@betable&#x2F;tifu-by-using-math-random-f1c308...</a>) explains the problem with Math.random() in more detail.<p>Probably the source of the shuffle (though it was not mentioned, its visualisation was used) considering the old implementation had been there for about 6 years (and had been partially busted until a few weeks ago)