In my experience as a native English speaker, ricochet was first described of bullets and projectiles that deflect upon impact and do not stop but instead travel in a different unintended direction. There is a strong sense of speed and lack of control, and danger.
The bullet ricocheted off of the target and whizzed by my head.
A ball is not typically said to ricochet unless it is travelling uncontrollably at a high rate of speed and able to cause danger as a projectile. Exceptions exist in poetic language of course, as others have mentioned.
The ball ricocheted off of the side of the building as it fell.
Bounce on the other hand is more soft and neutral in relation to danger, and slower, and therefore, more controlled. Depending on the subject, bounce may imply that the object remains intact, like when bouncing a ball. Physically, a bounce typically comes back at you (again, think of a ball), whereas a ricochet can go in any direction.
My brother fell off the roof and bounced off the porch on the way down.
That implied that his path of travel reversed at the point when his butt met the porch. (By the way, he was fine).
Bullets may be said to bounce, but this sense emphasizes the lack of damage or danger.
The bullets just bounced off of the tank's armor.
and
I bounced the bullet off of the trampoline and caught it again.
Bounce can almost always be used in place of ricochet since it is more general.
Bounce can be used in the context of danger, but it is not implied by the word itself but rather the context:
The wrench bounced off of the concrete and hit me in the cranial area.