Hi Andreas,
The issue is that the AS3 language promotes integer arithmetic to Number. That is, your multiplication has a type of Int->Int->Float (in Haxe terms).
On the other hand, Haxe defines the multiplication as Int->Int->Int.
This causes a difference when you multiply two large ints to produce a result bigger than 2^16, in Flash this will be a large Float that represents the result, but Haxe overflows and truncates the result to 32-bits.
If you change your AS3 version to this, you will see consistent results:
return _seed = ( int(_seed * MULTIPLIER) % MODULUS) & MODULUS;
(You'd also get consistent results if you changed the Haxe version to use Float multiplication instead of Int, but for an RNG, you probably want the 32-bit overflow behavior.)