Hacker News new | ask | show | jobs
by thethirdone 3255 days ago
This implementation NEVER moves the nth item as that is past the end of the array.

   i = Math.random() * n-- | 0; 
generates a value less than n.

And

    t = array[n];
    array[n] = array[i];
    array[i] = t;
is using a decremented n.

You are being confused by the `n--` in the random selection.