A quick google shows that mkpasswd is part of the expect
If mkpasswd doesn't show up using the locate command, but does show up from the command: whereis mkpasswd
then run the command: updatedb
and try the locate command again.
# locate mkpasswd
# whereis mkpasswd
mkpasswd: /usr/bin/mkpasswd /usr/share/man/man1/mkpasswd.1.gz
I had success using the command like this ...
# (adduser fred ; mkpasswd fred)
e7ZJ3z;jy ## Note: this is an example of the password that is generated.
If you didn't want the client to know a password in advance, you could give them a null password and force them to make a new one at first login.
passwd -f -u fred
chage -d0 fred
Maybe some more reading on the chage commmand....