Вы так пишите, как будто алгоритм шафла - это предмет теории заговора, и он очень сложный. Нет, на самом деле он довольно простой. Вот такой например на топдеке в теге колоды:
for (var i = deck.length - 1; i >= 0; i--) {
var j = Math.floor(Math.random() * i);
var tmp = deck[i];
deck[i] = deck[j];
deck[j] = tmp;
}
Найдите тут теорию заговора, пожалуйста.