Stabilisci che percentuale di 0 e di 1 vuoi. Diciamo che vuoi il 40% di zeri e (di conseguenza) il 60% di uni.
Dato che la rand() restituisce una distribuzione teoricamente omogenea di valori tra 0 e MAX_RAND, ti basterà considerare il risultato dell'estrazione come 0 se rand() ti restituisce un valore compreso tra 0 e MAX_RAND/10*4 e 1 altrimenti.
Oppure, per maggiore chiarezza, puoi fare
codice:
double r=rand()/(double)MAX_RAND;
ottenendo così un numero compreso tra 0 e 1; se esso è minore di 0.4, allora consideri uno 0, altrimenti un 1.