私はモンテカルロ法は使ったことないですが、整数の疑似
乱数をRAND_MAXとかで割った答えを丸めるか、切り捨てる
かで違いが出てきてもおかしくないと考えます。
最適化レベルを上げると、処理が「丸め」から「切り捨て」
に変わってる可能性があります。

強制的に丸め(四捨五入)を行わせる、-fp_portを試して
みたらどうでしょう。

一般に、単精度計算の際には、この最後の桁の問題について
気をつけないといけません。