Here's another approach, but still keeping it all in one Macro as @peternlewis has suggested.

The tricky part of what you are asking is that the total number of messages will change as you add more messages so to do the Random Math you need to count how many messages you have in total and that total will change as you add/delete more messages in the future. If you always had a fixed number of total message (say, 5) it would be a lot easier.

So, the approach below stores your messages in a local Variable and you can add/delete/edit your messages by just editing that Variable. Each message needs to be on its own line as it is the line count that gives us the total.

The Macro checks how many lines (messages) there are, uses that in the Random Calculation, which comes up with a line number and then displays that line from the Variable.

But there was still a bit of jumping through hoops as you will see by the number of Actions.

Firstly Keyboard Maestro cannot directly split a Variable by line breaks. We have to replace those line breaks with a symbol that Keyboard Maestro can then use to split the Variable up. I chose the star symbol as it is a symbol that probably won't be in the messages text.

We can get the total number of lines using %Variable%LOCAL__Messages[0]★%

(it is the zero in the square brackets that gives us the total - if "3" was in the square brackets that would give us line 3)

We can use that total to do the Math to choose a Random number from 1 to the total number of lines.

Now we can split that numbered line out from the Variable. But... the tricky part here is that the line number exists as a Variable and Keyboard Maestro cannot directly use a Variable within a Variable.

In other words, Keyboard Maestro could easily display the third message like this:

%Variable%LOCAL__Messages[3]★%

But it cannot directly do that if the "3" is also a Variable - %LOCAL__RandomLine%

%%Variable%%LOCAL__Messages[%Variable%LOCAL__RandomLine%]★%%

That text has to be filtered to process all those Variables...

Finally we can display the result of all that (our random line) by using:

%Variable%LOCAL__DisplayLine%

Bear in mind that this is a true random result - so you might easily get the same message displayed a few times in a row.

EXAMPLE Display Random Message - with expandable list.kmmacros (5.1 KB)