int n = getContainsRandom(rtn, count)+1;
В методе getContainsRandom вы проверяете свой список на вхождение числа, но в список помещаете число на единицу большее. И вот тут уже нет гарантий, что его в списке нет. К примеру, getContainsRandom вам вернет цифру 3 т.к. её нет в списке и вы в список помещаете цифру 4, а она уже в списке может быть.