https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108336
--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Most likely there is only one seed per program so the random # generator is using locks. So the order is dependent on which thread calls the function. Now having a seed per thread might be a good idea but it does have other kind of issues. Even initializing it and even Making sure it does not reinitialized each time a new openmp thread is launched.