If I were to guess (and I don't have mIRC up at the moment to check), I would say that the "," in %i is causing difficulties via $eval.
$eval($i,1) --> $eval(1,100,1) which would evaluate to a scalar (possibly "1", but I would have to test this in mIRC).
Thus, only one parameter is being passed to $rand when you use $eval.
When you are using [ %i ], "1,100" is also being evaluated, but there are no expectations of "," notation - so there is no confusion over the placement of the "," and thus no ambiguity on the result.
As I said, these are my first thoughts and I have not tested this.
Cheers,
DK