I see in your example that you've already taken the first step by feeding your drone into an *InterpolatePresets*. The range of the **Interpolate** control is [0,1], but if you prefer to select the presets as integers ranging from 1 to the number of presets, use an expression of this form to translate your integer selection to the (0,1) range:

!SelectedPresetNumber - 1 / (<NumberOfPresets> - 1)

So if you were going to use a fader to select from your 35 presets, you would use: (!Number - 1 / (35 - 1))

But instead, you want to select a preset at random. So in place of the !Number fader, use an expression that generates a random number, for example:

!Trigger nextRandom abs

That will give you a random number in the range [0,1]. But since you'd like to be able to change the range and the offset, you can set the min and max values for the random preset number as EventValues. The general form for this is to multiply by the range and add the offset. So you could use something like:

!Trigger nextRandom abs * (!MaxValue - !MinValue) + !MinValue - 1 / (35 - 1)

As a last step, you want to ensure that you are getting integer values for the preset numbers (unless you are interested in getting the interpolated values between two presets which can also be interesting). So as a last step you could truncate the random preset number (since it will otherwise be a floating point value):

(!Trigger nextRandom abs * (!MaxValue - !MinValue) + !MinValue) truncated - 1 / (35 - 1)