(use srfi-1) (define (shuffle l) (if (null? l) '() (receive (h t) (split-at l (random (length l))) (cons (car t) (shuffle (append h (cdr t)))))))