create random numbers on the command line, with the sfk random command available on Windows, Mac OS X and Linux.

sfk rand[om] from to

create a random number. from and to values
can be in the range 1 to 32000 approx.

command chaining
   supports output chaining.

   sfk rand 1 10
      create a number from 1 to 10
   sfk rand 1 10 +setvar r
      set variable r to a random number

example script: a number guessing game 

@echo off
sfk script %~f0 -from begin %*
rem . %~f0 is the absolute batch file name
GOTO xend

sfk label begin -var
   +if "%1 = " begin
      +tell "add 'play' to play the number game."
      +stop 0
   +if "%1 = play" begin
      +call game
      +stop 0
   +tell "unknown parameter: %1"

sfk label game
   // Note: install SFKTray to see colorful lights.
   +rand 1 10
      +setvar mynum
   +tell "i know a number, you can guess it."
   +tell "enter from 1 to 10, you have 3 tries."
   +setvar try="try again."
   +for i from 1 to 3
         +setvar usernum
      +if "#(i) > 2"
         then setvar try=""
      +if "#(mynum) < #(usernum)" begin
         +status local "slot=#(i) color=red"
         +tell "no, my number is [Red]lower[def]. #(try)"
      +if "#(mynum) > #(usernum)" begin
         +status local "slot=#(i) color=red"
         +tell "no, my number is [Red]higher[def]. #(try)"
      +if "#(mynum) = #(usernum)" begin
         +status local "slot=1 color=green blink=fast timeout=10"
         +status local "slot=2 color=green blink=fast timeout=10"
         +tell "[green]correct, you win![def]"
         +stop 0
   +status local "slot=1 color=red blink=fast timeout=10"
   +status local "slot=2 color=red blink=fast timeout=10"
   +tell "[Red]3 tries done, you loose. it was #(mynum).[def]"