What else can I use?
Also, why is it frowned upon?
I'm not particularly sure with batch files, it might be your only option for some things. That said I really think you'd be far better investing your time in a modern language that'll have far more use behind it!
It's frowned upon in most languages simply because it's hideous, awful and just shouldn't be used. All the uses of goto in any modern language can be replaced by methods, loops and recursion (and sometimes a mixture of all 3.) These structure code much more nicely than goto, make code easier to read and help keep your prorgam in overall better shape. If you find yourself wanting to use goto in a modern language instead of one of the above 3, then in 99.99% of cases it's because you've made a silly design decision elsewhere (and therefore you need to go back and do some refactoring.)
As for what's wrong with your code - it's a long time since I've done any work with batch files, and I don't know of anyone these days that spends any large amount of time with them. That said, looks like you might be missing a "set" on myrand? Not sure if that'll change anything though.
As for the colour thing, you change colour using the "color" command. So:
echo HI - I want this to be green
echo I AM A COMPUTER -and this to be blue
echo I AM A COMPUTER
However, can I please reiterate - WHY are you trying to spend lots of time getting things working in batch files?! Unless you've got a very specific task in mind that needs to be accomplished with a batch file, it seems rather pointless... you'd be far better going for a more modern, more widely used and far more useful language!