Вам нужно «перемотать» обратно к counter-1
при поиске дубликата, чтобы вы снова начали искать дубликаты:
public void generateNumbers()
{
for(int counter=0; counter< 6; counter++){
numbers[counter]= 1+ (int)(Math.random()*49);
for(int y = counter - 1; y >=0 ; y--){
if(numbers[counter] == numbers[y]){
numbers[counter]= 1+ (int)(Math.random()*49);
y = counter - 1; // <<<===== ADDED
}
}
}
Ваш оригинальный метод не будет работать, если вы начнете с этого массива
1 3 7 8
, затем сгенерируйте 3, сравните его с 8 и 7, найдите дубликат 3 и сгенерируйте 8 в качестве замены.На этом этапе ваш алгоритм будет проверять 8 против 1 и быть уверенным, что дубликатов нет;это было бы неправильно.