Hacker News new | ask | show | jobs
by Terribledactyl 3260 days ago
This implementation always moves the nth item, it should only do it most of the time, it could never return the starting array but needs to be able to.
1 comments

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.