There seems to be little information on the subject... this is what I gather:
- Game Maker provides a single global random
- Game Maker remembers the set random seed
randomize will set a "random" seed, is intended to be called only once
From the above it is very likely that calling
randomize generates a seed based on the game or the machine, and calling it multiple times is indempotent.
To get over that problem you can use
random_set_seed(val), but from where do you get the seed? If you try using random, that random will generate a value using the default seed, therfore it will always generate the same value.
Instead I suggest to use
current_time for your seed. Under the assumption that calls to
random_set_seed(current_time()) don't happen close enough in time, this will make sure it yields a different seed.
You can make it a bit more interesting if you wrap that in a function, and keep track of the number of times it has been called. Combining that with number with
current_time would make sure that it sets a different seed every time it gets called even if the calls happen consecutively.
current_time may make your game suceptible to tampering by changing the system clock.
You could roll your own number generator, start by reading about Linear congruential generators