Я столкнулся с такими же трудностями, и это сработало, обнулив оба состояния и rand_data, а в вашем случае удаление & перед буфером:
char randomStateBuffer[STATELEN];
struct random_data randData;
memset(randomStateBuffer, 0, sizeof(randomStateBuffer));
memset(&randData, 0, sizeof(struct random_data));
initstate_r(time(NULL), randomStateBuffer,sizeof(randomStateBuffer), &randData);
мне помогло.