innologic doesn't properly allow seed specification with $random.
$random(seed) should change the value of seed so that the next call to $random(seed) will deliver a different pseudo-random value.
Currently ESP (XV v2.2.0) doesn't set the seed, so the random call returns the same value each time:
--------------------------------------------------
module top;
integer seed;
initial seed = 42;
initial begin
$write("hey %h %h\n",$random(seed),seed);
$write("hey %h %h\n",$random(seed),seed);
$write("hey %h %h\n",$random(seed),seed);
$write("hey %h %h\n",$random(seed),seed);
end
endmodule
--------------------------------------------------
(Fixed in 2.3+)