il faut savoir qu´en debug et en release, les contextes mémoire sont bien différents.
Certains programmes peuvent passer en débug et non en release.
Le fait que ce soit aléatoire peut etre plusieurs choses : par exemple, un débordement :
si tu as un tableau
int T[50], et que tu écris sur l´élément 55, est ce que ça va planter ou non ?
--> personne ne sait, c´est un facteur chance, ça dépend si ton tableau est alloué pres d´un bord de segment ou non, ça dépend des variables qui sont déclarées apres le tableau qui peuvent etre écrasées, etc...
Ce que je te conseille, c´est de lancer le test, mais pas en plein écran d´abord. Ensuite, de mettre un break point au début du programme, et de faire avancer pas a pas.
Controle tes valeurs de retour, et essaies, en faisant avancer pas a pas, de reserrer sur la zone ou ça plante. par dichotomie, tu devrais y arriver.
Tu sauras alors dans quelle partie du programme ça plante, et ça t´aidera a mieux cerner le soucis...