simple sample added by wasamasa on Sat Mar 28 18:56:33 2015
(define (sample size population)
;; take a sample by adding yet untaken picks to the result
(let loop ((result '()))
(if (< (length result) size)
(let ((pick (list-ref population (random (length population)))))
(if (not (member pick result))
(loop (cons pick result))
(loop result)))
result)))