Trouble with a random number is that it could be 3.19583, which is not on your list. Your script only working if the number is a whole number. Change the "==" to be equalities.
So this line;
? (_ran == 1) : goto "one"
Should be changed to;
? (_ran <= 1) : goto "one"
And this line;
? (_ran == 2) : goto "two"
Should be;
? (_ran <= 2) : goto "two"
And so on. This way, if the number randomly chosen is 0.384, which is less than 1, it goes to "one". If the number is 1.381 then this isnt less than 1, so it goes to the next line which it realises it less than 2, so it goes to "two"