Random.nextInt repetindo?

Eu estava aqui fazendo um programa meio “besta”, que gera imagem “randômicas”, mas as vezes, não sei se é impressão minha, repete as imagens. Isso está certo?

E tambêm gostaria que dessem uma olhada no código pra ver se pode ter alguns melhoramentos e o que eu devo mudar no meu “estilo de código”.

[code]import java.awt.;
import java.awt.event.
;
import java.awt.image.;
import javax.swing.
;
import java.util.Random;

public class guiutil extends JFrame implements ActionListener {
Random r = new Random();
Color[] cores = {Color.red, Color.green, Color.blue};
JButton b;
JLabel l;
JCheckBox c;

public guiutil() {
	super("Random");
	
	l = new JLabel();
	l.setIcon(gera(false));    		 	
	add(l, "North");
	
	b = new JButton("Gera");
	b.addActionListener(this);
	add(b, "Center");
	
	c = new JCheckBox("Colorido");
	add(c, "South");
	
	pack();
	setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);    		
	setVisible(true);
}

public static void main(String[] args) {
    new guiutil();
}

public void actionPerformed(ActionEvent e) {
	if (c.isSelected()) l.setIcon(gera(true));
	else l.setIcon(gera(false));
}

public ImageIcon gera(boolean cor) {
	BufferedImage bf = new BufferedImage(100, 100, BufferedImage.TYPE_INT_RGB);
	Graphics g = bf.getGraphics();
	g.setColor(Color.white);
	g.fillRect(0,0,100,100);
	g.setColor(Color.black);
	
	for (int i=0; i<10; i++) {
		if (cor) { g.setColor(cores[r.nextInt(cores.length)]); }
		int x = r.nextInt(100);
		int y = r.nextInt(100);
		g.fillOval(x,y,x+10,y+10);
	}
	
	return new ImageIcon(bf);    	
	
}

}[/code]

Repete imagens porque a probabilidade de cair na mesma imagem é de 1/3. O que é grande. Se você colocar mais umas 4, 5 cores, vai ver a diferença.

Pois é, disso eu sei, mas eu digo de duas imagens idênticas, no modo Preto&Branco.
Deve ser só impressão minha mesmo.
Mas o que eu estou mais interessado é algum melhoramento no meu código. =)

[quote=Guga360]Pois é, disso eu sei, mas eu digo de duas imagens idênticas, no modo Preto&Branco.
Deve ser só impressão minha mesmo.
Mas o que eu estou mais interessado é algum melhoramento no meu código. =)
[/quote]

random nao é o que nao se repete, se vc quer garantir resultados diferentes digamos dos ultimos x resultados, vc deve implementar a logica.

ou fazer um filtro antes,jogar o resultado em um Set e depois exibir apens se o numero foi diferente!