Sorteio com restrições

Estou com uma duvida, como fazer para que meu codigo que sorteia numeros de 1 a 13 sortei no maximo 4 vezes cada numero, assim:
1 1 1 1
2 2 2 2
3 3 3 3

Os números não precisão ficar em ordem o importante é que apareçam 4 vezes.

import java.util.*;
public class Principal {
		
	/**
	 * @param args
	 */
	public static void main(String[] args) {

		
			Random r = new Random () ;
			int aux = ' ';
			
			int numeros[] = new int [52];//numero total de termos
			int i = 0;
			
			while( i < numeros.length){
			  final int H = 14 ; // sorteia entre 1 e 13
			  final int L = 1 ;
			  aux = (int) ((r.nextDouble() * (H - L)) + L);
			  
			  numeros[i] = aux;
			  i++;

			  }//fim if
			 
			
			}//fim while
		

			
			
			//imprime ps numeros
			for(int j = 0; j < numeros.length; j++){
				
				System.out.println("["+j+"] = "+numeros[j]);
				
			}
	}

}

O problema é que esse codigo não limita a quantidade de aparições do numero, sendo que em sorteio possa aparecer 13 em todas as posições do vetor.
Alguma dica para eu poder arrumar meu codigo???
Valeu…

Faz um validador, no final da rotina, verificando se possui mais de 4 números. Caso possua, deleta esta ocorrência e sorteia ela denovo!

Não é muito xique, mas funciona.