Let's say you want to schedule something which repeatedly reschedules itself using the absolute value of a standard normal distribution, plus 1.0. You could say this: Steppable step = ... double initialTime = 5.0; int initialOrdering = 0; RandomRepeat repeat = new RandomRepeat(step, initialOrdering, false) // use 'true' if multithreaded { protected double getNextTime(SimState state, double currentTime) { return currentTime + Math.abs(state.random.nextGaussian()) + 1.0; } }; state.schedule.scheduleOnce(initialTIme, initialOrdering, repeat); This code was written at 12:50 at night and has not been tested or even tried. But there is a slight chance it might work right. Anyway, it's a first draft which uses an abstract superclass and anonymous subclass to get around the issue of a multitude of distribution APIs in sim.util.distribution. Opinions? Sean