rand() is well-known to suck. random() is a bit better (sometimes), but drand48() and its family are much better.
In you need better than that, look into the mersene twister or other PRNG libraries. Or check out /dev/random if that can provide enough data for your needs.