Assuming you have a field called "Pre-Show" with the values you mention, this playlist should work:
[Media Type]=[Video] ~sort=Random ~mix=4,2,{[Pre-Show]=Trailer},1,{[Pre-Show]=Short},1,{[Pre-Show]="Feature Presentation"} ~sort=[Duration]
The ~sort=[Duration] should cause the trailers to play first and the Feature last, but it may sort incorrectly if you have very long Trailers/Shorts. To fix that, you can create an expression field called [Show Order] with this expression:
ifcase([Pre-Show],8,Trailer,1,Short,2,Feature,3)
And then use it for the final ~Sort:
[Media Type]=[Video] ~sort=Random ~mix=4,2,{[Pre-Show]=Trailer},1,{[Pre-Show]=Short},1,{[Pre-Show]=Feature} ~sort=[Show Order]