Dear Amy,
Insert a Code Component above your fixation and cue stimuli and put this code in its Begin Routine field:
fixDuration = numpy.random.random() + 1.0 #random number 0 to 1 plus 1.0 gives a random interval from 1.0 to 2.0
cueDuration = numpy.random.random() + 1.0
Then in the fixation component, in the start field enter 0.0 and in the Stop field, put:
$fixDuration
In the cue component, in the start field put:
$fixDuration
And in the Stop field, put
$fixDuration + cueDuration
Back in the Code component, also put these lines in the End Routine field:
thisExp.addData("Fixation duration", fixDuration)
thisExp.addData("Cue duration", cueDuration)
This ensures that the relevant durations are stored in your data for that trial.
NB the actual duration of stimuli is constrained to multiples of your screen refresh rate. So if your screen is running at 100 Hz, and you have a random cue duration of, say, 1.236 seconds, it will likely be shown on screen for 1.240 seconds. With a bit more sophistication, you could create random durations with a granularity that matches your screen refresh rate, but it may likely be a level of error that you are prepared to tolerate.
Regards,
Michael