You want to include the marker's time there and compare to current time. While you should be able to do it by checking if marker time equals current time and running the function if so, might be more foolproof to check whether current time is equal or more than marker time and current time minus one frame is less than, and if both conditions are true then run function.
Ok, in that case you want to count the number of markers that you have passed and use that number (marker index) for randomseed. Expressions don't have a memory of what has happened in earlier frames, so you have to calculate the shuffle for every frame. The same randomseed will ensure the random calculation is the same random calculation. So you would change that at every marker.
A bit of an inconvenience is that the nearest marker can be before or after current time, so you have to check whether the marker time is after current frame, and if so, subtract one to get the index of the last marker passed.