You've picked a good subject to start on!
This is possible to do in DVDSP, and the previous post has a detailed script that also tracks whether a clip has played before... i.e. no repeats.
If repeating isn't an issue then you can greatly simplify this by using the 'ran' function in a script. If repeating a clip is a problem then you've got a lot more work to do to ensure it doesn't happen. The example system shown previously is pretty advanced scripting, using bit shifting to track what has played. It is limited to 16 clips mind you, and 150 gets a bit more involved! The problem you've got is knowing what has played - keeping track of 150 clips is quite hard, and uses 9 1/2 registers... but we only have access to 8. In short, we need to find a way around this. Your second problem is putting 150 clips into a track and having 150 markers to split them... you need two tracks (there's a limit of 99 markers per track).
First, the easy bit... lets assume repeating is not a problem, but let's use a system that helps minimise the repeats (i.e. not a true random, but one that often gives a more pleasing result). For this we need to generate a random number between 1 and 150, then we need to go to the clip which corresponds to the chosen number. In your case, over two tracks, we have to do a bit of additional maths. Let's assume track 1 has 70 clips, and track 2 has 80
ran GPRM0, 65535 //creates a random number from 0 to 65535
mod GPRM0, 149 // selects a value using a modulus operation, from 0 to 149 (i.e. 150 possible)
add GPRM0, 49280 // this is the value of track 1 in your DVD
Jump indirect GPRM0 // jumps to the item.
Now, the magic here is knowing that track 1 has a value of 49,280 and that chapter 1 has the same value (i.e. the start of the track, and thus clip 1). Clip 2 is at marker 2 and has a value of 49,281... and so on. Track 2 has a value of 49408 and this will also be the value of clip 71.
So, by adding the track value to the random value generated we get the item value for a particular chapter (or clip). This then starts playback, but at the end of the playback it will continue to the next marker unless you set an end jump on the marker itself to tell the DVD player to return to the menu, or return to the random generator script.
Remember, this will not prevent repeats. To do this is much harder, and not at all random, as we have to create groups of clips that we can randomise within, and also randomly select a group to start with. You can probably randomise around 100 to 112 clips (with repeats). Beyond that you have not got the room to do the math in the 8 registers DVDSP gives you access to. If you want no repeats you can halve the number possible.. and it gets way more complex to do 🙂