<p>There's a lot of conflicting information about this topic. So let's try to agree on a definitive answer:</p>

<p>Which one of these random number generator in C create better randomness: rand, random or arc4random?</p>

<p>note: Just to make the question clear, this is not a question about true randomness, it's only a clash between those 3.</p>

<hr>

<p>As pointed out, this question doesn't make much sense, as this is not about C, but about a specific implementation, in my case, cocoa (more specifically the iphone sdk, but my guess is they are the same as far as these functions go). Still, there's some useful information here. I concluded by implementing arc4random, mostly because of its ease of use (no seeding needed), which is an important factor that no one pointed out.</p>

<p>I'm closing the question, and adding the cocoa tag for cocoa developers looking for information on RNGs. Many thanks for those who contributed, and sorry for the confusion.</p>

The implementation of rand() is not specified by the C standard, however most compilers use a linear congruential generator. random() and arc4random() aren't standard C either, but they are better than the usual implementation of rand()
I'd say: arc4random() is better than random() is better than rand()
rand() is really terrible. You could easily do better than all three however.
It also depends what you want the random numbers for. A good random number generator for encryption/security may not be a good random number generator for simulation and vice-versa.