Я не знаю, является ли rand_s поточно-ориентированным, но кажется, что это, вероятно, так, поскольку кажется, что он совершает обратную поездку в ОС для энтропии. (пока вы ссылаетесь на многопоточный CRT VC ++, все ставки отключены, если вы ссылаетесь на однопоточный)
Если это поддерживается Windows CRT, вы можете попробовать вызвать rand_r, который является вердиктовой версией posix. ИЛИ еще лучше boost :: random, если вы уже используете boost.
учитывая, насколько скоро будет распространена многопоточность, никто не должен больше использовать rand () в новом коде - всегда пытайтесь использовать rand_r / rand_s / boost / для различных безопасных рандов, зависящих от платформы / и т.д.