I believe that if companies value employees and wish to retain them they should be willing to either gives raises or bonuses to their hardest working employees. Failure to do so will often result in frequent turnover within the organization. Bonuses are a great incentive to keep employees happy and working hard for years to come.
Employees who work harder should get bonuses. This is because people are resources and if these resources are producing more profit, then they should be rewarded. If they are not rewarded, they might leave a company quite quickly for a higher salary. Some companies do not know what they have until good employees are gone.
While all employees should put forth their best efforts in their jobs, sometimes there are employees who go above and beyond the call of duty for their employer. When an employee does this, he or she definitely deserves a bonus. It's nice to get some kind of special recognition for a job well done or for extra effort, but it's most appreciated when there is a financial incentive attached.
Employees should work the same to get bonuses. I don't see why employees should get bonuses if they work harder. From my experience, I have always worked hard and never earned a bonus. In my case and the case of millions of other employees, the bonuses should be distributed equally among every employee that does a good job.
For those employees that work harder, there are already rewards in place. These rewards are known as raises. There are also rewards known as promotions. These rewards should be enough to motivate a worker. Beyond that, commission based jobs are also reward oriented. The singling out of 'bonuses' basically translates to the discretion of the supervisor. Unless the goal for a 'bonus' is equally available to all the employees at that level, they should not exist.