rand.ss
#lang scheme/base

(require (for-syntax scheme/base))

(provide rand)
(define-syntax (rand stx)
  (syntax-case stx ()
    [(_ expr ...)
     (let ([n (length (syntax->list #'(expr ...)))])
       (with-syntax ([(num ...) (for/list ([i (in-range n)]) i)] [n n])
         (quasisyntax/loc stx
           (case (random n)
             [(num) expr]
             ...))))]))