Bouncing ball... with a twist (?)

I’m trying to do a simple game, and I’m not sure how to do this… I want to make a ball that will bounce along a 2-d plain, when it hits an object, it will bounce off in the opposite direction with a slight random varient (in other words, every time it hits something, the bouncing will vary in a range between 170-190 degrees)

Can I do this without python? (simpler = better), if not, where’s a good site to learn the basics of changing an object’s direction (and speed) upon collision?

you can’t do it in blender because:
there is no way to make bounces random
slight error will cause it to become non-2d

and, most simple physics engines would just mirror the velocity across the normal of the surface, and reduce it by some factor [multiply it by the restituit value of the material]

I was afraid it might not be possible, but I was toying around with having the ball bounce in 3-d, but encaced on both sides, like a narrow fish tank. I then made it so that a collision changed the rotation by a fraction and it kinda’ worked, but would glitch through the walls after a short time.

Would it be possible to just do this without the random angles /rotation? (with the fish tank)
The main problem is that the ball is too ‘heavy’ to keep bouncing, it will always eventually stop.

if your willign to try my Bloded ODE physics module might be able to afect things in the game world, i’ve never tried.