Some people take a very narrow view on what a basic PRNG is useful for. It's neither as bad as some people say, nor as good as some people think. Provided you use it properly, and for the right things, it works well.
The implementation used in Visual Studio is:
Code:
static unsigned int g_seed;
inline void srand(int seed)
{
g_seed = seed;
}
inline int rand()
{
g_seed = (214013*g_seed+2531011);
return (g_seed>>16) & 0x7FFF;
}
If you just copy and use that in your project, along with your own definition of something like RAND_MAX, then it will clearly be the same on every system you use it on.