Exercicio de java para gerar 6 numeros aleatórios

Gostaria gerar 6 números aleatórios, porem devem ser diferentes
. O meu código que eu fiz, só que ainda os números se repetem ! e não queria usar nenhum método. O que estou fazendo de errado?

public static void main(String[] args) {
int sorteado = 0, cont, i;
int jogo[] = {0, 0, 0, 0, 0, 0};

	// Gerar 6 numeros aleatorios
	// DEVEM ESTAR ENTRE 1 E 60 ALEATORIOS
	//Vamos sortear 6 números de 0 até 60 sem repetição
	// NÃO PODE HAVER NUMEROS REPETIDOS
	
	for(cont = 0; cont < 6; cont ++ ) {
		sorteado = (int)(1 + Math.random() * 60);
		jogo[cont] = sorteado;
		if (jogo[cont] == sorteado) {
			for(i = 0; i< 6; i ++) {
				
				sorteado = (int)(1 + Math.random() * 60);
				jogo[cont] = sorteado;
				
					
			}	
			
		}else {
			break;
		}
		
	}
		
	
	System.out.println("\nPreenchimento Original: ");
			
	for (int dezena : jogo) {
		
		System.out.printf(" %d ", dezena);
	
	}
	
	// EXIBIR EM ORDEM CRESCENTE
	Arrays.sort(jogo);
	System.out.println("\nExibição Ordenada: ");
	for(int dezena : jogo) {
		System.out.printf(" %d ", dezena);
	}
	
}

}

Basicamente, no seu primeiro for, antes de salvar na variavel sorteado o número gerado por Math.random(), verifique se o número sorteado está no seu vetor jogo[]. Se estiver, sorteie de novo. Senão, prossiga e salve o número aleatório gerado.
Apenas coloque essa lógica no sorteio para que não haja repetição. Não entendi o uso de um segundo for. Assim você correrá o risco de que o método gere repetição na sua variável sorteado.
Para implementar isso você pode usar um while ou for para percorrer o seu vetor jogo[]. O erro do seu código está na ocorrência dessa linha:

if (jogo[cont] == sorteado)

Repare que você compara apenas a iteração do laço atual e não pecorre o vetor jogo[0…n-1] em que n é o tamanho declarado do vetor.

Bastaria testar se o número gerado já existe no array antes de adicioná-lo ao mesmo, abaixo coloquei um exemplo utilizando lista!

Exemplo:

private void sorteio() {
        int number;//Receberá o número gerado
        List<Integer> numeros = new ArrayList<>();//Lista de números
        Random rand = new Random();//Randon para gerar números aleatórios
        
        while (numeros.size() < 6) {//Enquanto a não obtiver os 6 números irá executar
            number = rand.nextInt(60);//Gera um número aleatório entre 0 e 60
            
            if (!numeros.contains(number)) {//Caso o número gerado já exista na lista, o mesmo não será adicionado novamente
                numeros.add(number);//Adicionando o número na lista        
            }
        }
        
        Collections.sort(numeros);//Ordenando a lista
        
        for (int i = 0; i < numeros.size(); i ++) {
            System.out.println(numeros.get(i));//Apresentando a lista
        }
    }

o que vc poderia me indicar ? usar apenas um for? o que eu colocaria no if ?

O amigo Jonathan_Medeiros esclareceu com código a minha explicação :slight_smile:

Então só que ele usou List, eu estou tentando fazer sem método , usei apenas o random porque não tinha jeito.

O código que você tem de fazer é idêntico ao do exemplo que te passei!
Basta adaptar utilizando array ao invés de uma lista, o código está todo comentado o que facilita a adaptação!

Se você criar uma classe que funciona igual aqueles globos cheios de bolinhas, tudo fica mais fácil:

Classe que contém as bolinhas de números:

import java.util.ArrayList;
import java.util.List;
import java.util.Random;

public class Numeros {

    private List<Integer> numeros;

    public Numeros(int de, int ate) {
        numeros = new ArrayList<>();
        for (int numero = de; numero <= ate; numero++) {
            numeros.add(numero);
        }
    }

    public int sortear() {
        if (numeros.isEmpty()) {
            throw new IllegalStateException("Todos os numeros já foram sorteados!");
        }
        int limite = numeros.size();
        Random random = new Random();
        int sorteado = random.nextInt(limite);
        return numeros.remove(sorteado);
    }
}

Exemplo de uso:

import java.util.Arrays;

public class Exemplo {

    public static void main(String[] args) {
        Exemplo programa = new Exemplo();
        programa.executar();
    }

    private void executar() {
        int jogo[] = new int[6];

        // Gerar 6 numeros aleatorios
        // DEVEM ESTAR ENTRE 1 E 60 ALEATORIOS
        // Vamos sortear 6 números de 0 até 60 sem repetição
        // NÃO PODE HAVER NUMEROS REPETIDOS
        Numeros numeros = new Numeros(1, 60);
        for (int cont = 0; cont < jogo.length; cont++) {
            int sorteado = numeros.sortear();
            jogo[cont] = sorteado;
        }

        System.out.println("\nPreenchimento Original: ");
        for (int dezena : jogo) {
            System.out.printf(" %d ", dezena);
        }

        // EXIBIR EM ORDEM CRESCENTE
        Arrays.sort(jogo);
        System.out.println("\nExibição Ordenada: ");
        for (int dezena : jogo) {
            System.out.printf(" %d ", dezena);
        }
    }
}