Considerando che è un codice molto elementare giusto per provare e che modificherò soprattutto per quanto riguarda il controllo, come è possibile che su 10 chiamate alla funzione mi escano 2/3 numeri che si ripetono anche 2/3 volte

codice:
int main(){
	
	int v[5];
	num(v);
	cout<< endl;
	num(v);
	cout<< endl;
	num(v);
	cout<< endl;
	num(v);
	cout<< endl;
	num(v);
	cout<< endl;
	num(v);
	cout<< endl;
	num(v);
	cout<< endl;
	num(v);
	cout<< endl;
	num(v);
	cout<< endl;
	num(v);
	cout<< endl;

	system("pause");
	return 0;
}


int cifra(){

	int i;

	srand((unsigned)time(NULL));
	i=rand()%9;
	return i;

}



void num(int* v){

	int i;

	for(i=0;i<5;i++){
	
		if(i=0) v[i]=cifra();
		
		if(i=1){ 
			do{
				v[i]=cifra();
			}while(v[i]==v[0]);
			cout<< v[i];
		}

		if(i=2){ 
			do{
				v[i]=cifra();
			}while(v[i]==v[0] || v[i]==v[1]);
			cout<< v[i];
		}

		if(i=3){ 
			do{
				v[i]=cifra();
			}while(v[i]==v[0] || v[i]==v[1] || v[i]==v[2]);
			cout<< v[i];
		}

		if(i=4){ 
			do{
				v[i]=cifra();
			}while(v[i]==v[0] || v[i]==v[1] || v[i]==v[2] || v[i]==v[3]);
			cout<< v[i];
		}
	}
}
Eppure il sistema random l'ho utilizzato bene
Suggerimenti???