compareFunction(a, b) must always return the same value when given a specific pair of elements a and b as its two arguments. If inconsistent results are returned, then the sort order is undefined.
for (i = 1; i<arr.length; ++i) {
let j = floor(rand()*(i+1));
let tmp = arr[i];
arr[i] = arr[j];
arr[j] = tmp;
}
так ключи и значения в массиве имеют однозначное соответствие. Что там искать?
function rand() {return 0;}
Тоже в некотором смысле перемешано будет. Хоть вариант и всего один будет.Но в вопросе указано:
Это вообще сложно гарантировать с использованием псевдослучайного генератора. Но в вашем примере будет всего 67 перестановок (может и меньше), несмотря на то, что seed может принимать очень много значений и перестановок возможных очень много. Вряд ли это удовлетворительное решение.