Tu peux rester au généteur 16-bits standard, mais à mon avis, il te manque un appel à srand().
PS: Pas besoin de le faire à chaque tirage, c'est trop coûteux. Le faire une fois au début suffit amplement ! Et après, tu fais des "rand() % MY_MAX_VALUE".