Comportamiento de SecureRandom

Aunque después de seguir muchos artículos sobreSecureRandom, Me encontré con una duda con el uso deSecureRandom API de seguridad en Java. En el siguiente ejemplo.

public class SecureRandomNumber {
public static void main(String[] args) throws NoSuchAlgorithmException {

    TreeSet<Integer> secure = new TreeSet<Integer>();
    TreeSet<Integer> unSecure = new TreeSet<Integer>();
    SecureRandom sr = new SecureRandom();
    byte[] sbuf = sr.generateSeed(8);
    ByteBuffer bb = ByteBuffer.wrap(sbuf);
    long d = bb.getLong();
    sr.setSeed(d);

    Random r = new Random();
    r.setSeed(System.nanoTime());
    for (int k = 0; k < 99999; k++) {
        int i = sr.nextInt();
        if (!secure.add(i)) {
            System.out.println("Repeated Secure Random Number");
        } else {
//              System.out.println("************Unique***********");
        }
        int j = r.nextInt();

        if (!unSecure.add(j)) {
            System.out.println("Repeated UnSecure Random Number");
        }
    }
}

}

Cuando ejecuto este programa no encuentro ningún beneficio adicional de usar unSecureRandom Ya que casi da el mismo resultado.

¿Alguien puede hacerme saber si estoy haciendo lo correcto aquí?

Respuestas a la pregunta(3)

Su respuesta a la pregunta