Funzioni utili!

Giousto per mantenere il mio lisp molto di base mi sono fatto altre due funzioncine la prima per generare un carattere pseudo random da una stringa

(defun m0rp30/random-string-char (&optional str)
  "Get a random character from a string if you don't pass a string used a default srting"
  (let* ((str (or str "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!@#$%^&*()?"))
	(str_len (length str))
	(rand (cl-random str_len)))
    (substring str rand (+ rand 1))))

e l’altra, altrettento semplice serve per generare una password pseudo casuale

(defun m0rp30/password-generator (&optional len)
  "Generate a pseudo random password, by default, length of 10 character"
  (interactive)
  (let* ((len (or len 10))
	 (i 0)
	 (pwd ""))
    (while (< i len)
      (setq pwd (concat pwd (m0rp30/random-string-char)))
      (setq i (+ i 1)))
    (message "%s" pwd)))

Sono sicura al 100% che esistono pacchetti che lo fanno e sicuramente meglio ma come dicevo ogni tanto, per queste sciocchezze, ci sta reinventare la ruota !!!