Apply fraction and filtering after shuffling, include prefix in include filters.
If you picked an unfortunate fraction, you might have skipped all of a class of testing that was important to you (like --fraction 2 skipping all of GLES2 either fragment or vertex tests).
The downside is that for highly fractional or filtered runs, now you have to load the whole vk cts caselist into memory all at once (and also shuffle it), increasing runtime of a 5-suite vk run with --fraction 1000 -t "wontfindthis" from ~3.5s to ~8.5s.