Beh, il problema è facilmente risolvibile in due modi:
1) [sconsigliato] - generi con rand() valori tra il più piccolo numero ed il più grande (tra quelli che ti interessano ovviamente) e poi fai uno switch, del tipo:
int min=6;
int max=22;
int num=min+rand()%max;
switch(num){
case 6:
[...]
break;
case 10:
[...]
break;
case 14:
[...]
break;
etc..etc...
}
Occhio ad un'eventuale clausola default in quanto i valori generati da rand() sono effettivamente tra min e max, gli switch case servono appunto per scegliere solo i valori che ti servono.
2) metti in un array i valori da te scelti, e fai un rand() tra 0 e il numero di elementi dell'array. Ecco un esempio:
int numeri[]= {6, 10, 14, 28, 22}; // sono esattamente 5 numeri, quindi la dimensione è 5
printf("%d\n", numeri[ rand()%5 ] );
Spero sia stato d'aiuto. Ah, ho scritto solo alcune righe ovviamente, se vuoi che i due codici funzionino devi inserirli in un main() ed eliminare quei
[..] e quell'
etcetc...