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

sfk rand[om] [opt] [from to]

create a random number.

options
   -hex    produce hex output
   -dig=n  always use n digits

setting a random seed
   to set a fixed randomizer seed
   at the start of a script, use:
   sfk rand seed n
   with n from 1 to 16384.

command chaining
   supports output chaining.

examples
   sfk rand 1 1000
      create a number from 1 to 1000
   sfk rand -dig=6 1 999999
      create a number from 1 to 999999
      with 6 digits, zero prefixed
   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
      +endif
   +if "%1 = play" begin
      +call game
      +stop 0
      +endif
   +tell "unknown parameter: %1"
   +end

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
      +prompt
         +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)"
         +endif
      +if "#(mynum) > #(usernum)" begin
         +status local "slot=#(i) color=red"
         +tell "no, my number is [Red]higher[def]. #(try)"
         +endif
      +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
         +endif
   +endfor
   +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]"
   +end

:xend