(set! *random-state* (seed->random-state (current-time)))

(define (make-character-generator string)
  (lambda () (string-ref string (random (string-length string)))))

(define vowel (make-character-generator "aeiouy"))
(define consonant (make-character-generator "bcdfghjklmnpqrstvwxyz"))

(define name
  (let* ((patterns (list (list consonant vowel consonant)
                         (list consonant vowel consonant vowel)
                         (list vowel consonant vowel)
                         (list consonant vowel consonant vowel consonant)))
         (patterns-size (length patterns)))
    (lambda ()
      (apply string
             ((lambda (chars) (cons (char-upcase (car chars))
                                    (cdr chars)))
              (map (lambda (gen) (gen))
                   (list-ref patterns (random patterns-size))))))))

(display (name))