perl -le'print map { (a..z,a..z,0..9,"\$","!","-")[rand 65] } 0..pop' 7
Note this particular one only generates 7 digits with no UC. You can alter it to your taste or needs.
You can also wrap it in a shell script to generate a bunch in a row (in this case 10), like this:
for i in {1..10}
do
perl -le'print map { (a..z,a..z,0..9,"\$","!","-")[rand 65] } 0..pop' 20
done
As an aside I don't like any web based site that generates passwords (nor do you need that as just shown) since there is no way to know if the passwords generated are being logged along with some identifying information.