incluí a biblioteca time e coloquei o srand (time(NULL)) no início da função main. Não arrumou os aleatórios.
Troquei o srand (time(NULL)) de lugar, e coloquei dentro das threads, dentro do while(1), antes da seção crítica. Não arrumou, também.
Por último: tentei colocar o srand (time(NULL)) dentro da seção crítica. Também não arrumou.
Em qualquer alteração que eu fizesse era como se eu não fizesse alteração nenhuma... É como se a função não interferisse com o aleatório.
Noooooossa.... Eu sou uma anta! Hahahaha ^^'
Ok, arrumei, ficou certinho. Não deu mais o segundo problema.
Obrigada, tu é um gênio !
Agora só falta arrumar o primeiro problema, vou dar uma pesquisada nas funções que tu citou para ver se eu encontro alguma coisa.
Se puder ajudar: ele só começou a dar esse problema dos números randômicos quando eu usei mutex para proteger a seção crítica.
A partir daí ele não varia mais os randômicos. Antes variava normalmente.