Pues no esta nada mal!
Yo creo que el nivel de complejidad de la foto es bueno, contando que no hace casi imposible la lectura para el usuario (hay algunos captchas que son todo un puzzle).
Respeto a tu pregunta, ten en cuenta que tu tienes un array con las letras y números que usaras.
<?php
array("0","1","2","3","4","5","6","7","8","9","a","b","c","x","y","z");
?>
Pues en vez de hacer un rand a pelo, haz ese rand y guardala en una variable. Concatena todos los carácteres y números que usas, de tal manera que de la palabra deseada, pasale un md5 y guardalo en $_SESSION['var'].
Luego, cuando recibas el formulario, compruebas la validez con la variable de sesión
Saludos y suerte!