Java gerando números aleatórios não repetidos

Eu quero criar um conjunto de números aleatórios sem duplicatas em Java.

Por exemplo, eu tenho uma matriz para armazenar 10 mil números inteiros aleatórios de 0 a 9999.

Aqui está o que eu tenho até agora:

import java.util.Random;
public class Sort{

    public static void main(String[] args){

        int[] nums = new int[10000];

        Random randomGenerator = new Random();

        for (int i = 0; i < nums.length; ++i){
            nums[i] = randomGenerator.nextInt(10000);
        }
    }
}

Mas o código acima cria duplicatas. Como posso ter certeza de que os números aleatórios não se repetem?

questionAnswers(8)

yourAnswerToTheQuestion