Notsu - I think that's probably the expected behaviour for that action. My guess is that the event gets scheduled on the first call, and then the actions are run every n seconds as determined by the first time it ran. I could be wrong about that, though
A possible solution, if you're comfortable using functions, would be to set up recursive function that does what you want:
function "doSomething" > create object here
wait(3 + floor(random(1,4)))
call function "doSomething"
You'd have to manually call the function once to get it started, and then it should just go off on its own randomly - though to be honest, I haven't tried it :P