ты забыл скобки после rnd в строке
while(i--) arr.push(rnd);
в итоге в массив напушилось одно и то же значение, и никакого вложенного цикла по факту и не было
https://jsperf.com/uniqs5436436/ - исправленное и дополненное
вариант 3 - тоже с Set, только заполняется по ходу пьесы, в Хроме он оказался быстрее первого варианта, в ФФ медленнее (но оба они существенно быстрее второго, который рулит, только если разных значений совсем мало).
вариант 4 "читерский", заточен под конкретные данные, вместо Set используется настоящий массив, и он ожидаемо уделывает всех без шансов