Randomization without consecutive critical items

What I do is sent a minimum and maximum gap between critical items (which I call targets in prospective memory tasks) and use interleaved lists (see my online demo).