Yours is essentially a variation of the correct horse battery stable/diceware method. It is quite secure way to generate/encode passwords, but I'd recommend using more words, at least three but preferably four. The punctuation, numbers and capitalization might help to get through some onerous password requirements of some sites, but they do not contribute as much as the words to the security of the password.
edit: Just a reminder: check your randomness source for security!