Хочу сказать, что код хороший, но немного запутан.
Мне кажется у вас проблема в проверке на равенство текущего и предыдущего чисел:
if(randomNum == randNumbersArray[i])
Например, число шесть, имеет индекс 0 (т.е. первый элемент в массиве). Затем шестёрка опять рандомно генерируется, но уже с индексом 16. И в этом случае, ничего не помешает ей записаться, потому что в индексе 15 наверняка будет совершенно другое число.
Если хотите избежать повторов, необходимо проверять на совпадение все числа в массиве, и лишь после этого добавлять рандомно сгенерированное.