"$b1$b2$b3$b4$rand";

Queste variabili sono stringhe. Mi pare che le valorizzi come costanti. L'errore e' comunque dentro a una o piu' di queste variabili. L'errore viene intercettato dopo, ma nasce la'.