I'm not sure what the Shuffle() function is.
If you set S.InitialDelayMean to equal a longer vector (i.e. [1 2 3 4]), does it work?
If you want to draw a random value from S.InitialDelayMean with replacement, you can use:
ThisValue = S.InitialDelayMean(round(rand*length(S.InitialDelayMean)))