Salve raga ho un problema con il mescolamento di un mazzo di carte , in pratica ho creato una struct per il mazzo ,adesso devo fare una funzione che mischi le carte ma il problema è che quando stampo a schermo ripete alcune carte dovrei mettere un controllo e ho provato con una condizione creando una variabile temporanea che conterrà il valore di j e se j!=t memorizzare nel vettore ma praticamente mischia ugualmente ripetendo le stesse carte...come posso sistemare?

codice:
void mischia(){                
mazzo_() ;                
int j=0;               
srand(time(0));                
while(i<40){                
                j= rand()%39;                
                mazzom[i].seme=mazzo[j].seme;                            //mazzom sarebbe un altro tipo mazzo e conterrà             
                mazzom[i].carta=mazzo[j].carta;                              // quello mescolato
i++;}                
for(i=0;i<40;i++){                
                        printf("%s %s \n",mazzom[i].carta,mazzom[i].seme);}}