"I need to reset passwords to values that are later communicated to customers"
I don't see how this is good security, especially since the passwords aren't forced to reset and you've now generated a list of passwords for all your users in plain text after a potential security breach. 

I realize you have to do what you have to do, but having the users reset their own password is (IMO) a safer tactic.