This question evaluates understanding of randomization techniques, in-place array manipulation, probabilistic uniformity, and algorithmic complexity within the coding & algorithms domain.
Implement an in-place function shuffle(arr) in JavaScript that returns a uniformly random permutation of the input array. The algorithm must be unbiased (all n! permutations equally likely), run in O(n) time with O(