try:
=INDEX(IF(A:A="";;RANDARRAY(ROW(A:A))))

update:
=INDEX(IF(A:A="",,SUBSTITUTE(FLATTEN(QUERY(TRANSPOSE(
CHAR(IFNA(REGEXEXTRACT(""&RANDARRAY(ROWS(A:A), 15)*(10^15), JOIN("|",
SORT({ROW(48:57); ROW(65:90); ROW(97:122)}, 1, ))), 48))),,9^9)), " ", )))

ROW(48:57) = 0-9
ROW(65:90) = A-Z
ROW(97:122) = a-z
RANDARRAY(ROWS(A:A), 15)*(10^15) - the first 15 is equal to the length
of randomly generated sequence
on the other hand, if you are happy with chaos instead of a random chance you can do:
=INDEX(IF(A:A="",,SUBSTITUTE(FLATTEN(QUERY(TRANSPOSE(CHAR(IFNA(REGEXEXTRACT(""&
TEXT(PI()^EXP(1*PI())*SEQUENCE(ROWS(A:A), 15, 17, 17)^10, "#"), JOIN("|",
SORT({ROW(48:57); ROW(65:90); ROW(97:122)}, 1, ))), 48))),,9^9)), " ", )))

which won't recalculate at all while you edit your sheet
or if you prefer newly generated values every day:
=INDEX(IF(A:A="",,SUBSTITUTE(FLATTEN(QUERY(TRANSPOSE(CHAR(IFNA(REGEXEXTRACT(""&
TEXT(TODAY()*PI()^EXP(1*PI())*SEQUENCE(ROWS(A:A), 15, 17, 17)^10, "#"), JOIN("|",
SORT({ROW(48:57); ROW(65:90); ROW(97:122)}, 1, ))), 48))),,9^9)), " ", )))