Probably me not actually knowing what I&#x27;m doing. :) I was testing in the Chrome JS console, and if I define your function, it&#x27;s way faster than the standalone for loop.<p>But yeah, I think my underlying argument is roughly that if you do a naive &#x2F; obvious shuffle of a list in JS using Math.floor(Math.random() * list.length), given the inherent overhead of manipulating a JS list, you aren&#x27;t going to notice the overhead of a proper CSPRNG. I&#x27;m not totally sure if it&#x27;s true, but I think it is likely to be true.