Perfect shuffle in JavaScript - Guarantees that no element is in a different position after shuffle