I guess something like this could work.

root

var(4) ;increases probability of trigger

[state n]

type = varset

trigger = 1

var(30) = random

helper

[state n, set] ; n = desired probability n/999

type = varset

trigger = 1

var(0) = n + root,var(4) ; name

var(1) = n + root,var(4) ; name

var(2) = n + root,var(4) ; name

var(3) = n + root,var(4) ; name

var(4) = n + root,var(4) ; name

var(5) = n + root,var(4) ; name

var(6) = n + root,var(4) ; name

var(7) = n + root,var(4) ; name

var(8) = n + root,var(4) ; name

var(9) = n + root,var(4) ; name

changestate triggers:

parent, var(30)=[0-var(0)]

parent, var(30)=[var(0)+1-var(1)]

parent, var(30)=[var(1)+1-var(2)]

parent, var(30)=[var(2)+1-var(3)]

parent, var(30)=[var(3)+1-var(4)]

parent, var(30)=[var(4)+1-var(5)]

parent, var(30)=[var(5)+1-var(6)]

parent, var(30)=[var(6)+1-var(7)]

parent, var(30)=[var(7)+1-var(8)]

parent, var(30)=[var(8)+1-var(9)]

The second half E's post has still got me stumped though. Just over my head at this point I guess.