Boost.Random would be a good start. Just because rand() doesn't work for you doesn't mean you should write your own version that's better (you'd likely end up with something worse). There are many existing random number generators out there.
i have tried using rand() but i dont like it because the best seed is the time
That's not really an artifact of the generator. What do you think would be a better seed?
and it doesnt generate numbers random enough
I'd love to hear how you determined this. Not that it's an incorrect statement, but a lot of people think rand() is insufficient through hearsay rather than proper testing.