What are some additional requirements for this? You state, no Match Script, ok. But can the .vsm contain other scripting?
If additional scripting is allowed then there are various possibilities depending on exact requirements: how many different responses, does response have to be random, or in specific order, etc…
I don’t believe it is possible using a conversation (stateful service). If requests are similar then every request is a Conversation Starter.
And even if you could go round the Conversation Starter issue, you could imaging doing a similar round-robin approach where you would have a tree that is one long branch of all the different responses. Each node would have navigation “CLOSE” so the next response would always be the child node of the last response. But you get stuck on the final leaf, because navigation “WIDE” or “LOOSE” will respond with again the last node over and over as that is always done first before jumping to any conversation starter again.
One way I can think of to do this with OOTB virtual services that contain no scripting at all would be to use the round-robin behavior of the VSE whenever 2 or more virtual services are deployed that have the same port and same basepath.
So, let say you have 3 different responses.
Now the VSE will do a round-robin and will give first incoming request to service 1, second to 2, third to 3, fourth to 1, fifth to 2, etc…
Cheers,
Danny