How to put a unique material on duplicated objects separately?
By default, when you duplicate an object in Blender, the copy is a new object but will still share some data with the original (by default this includes materials and textures) and will copy other data, like the mesh (which allows you edit each independently). Because of this, all these objects will share the material the original object has.

To get each object to have its own unique material, you can select them all, go the 3d view header and use Object > Make Single User > Object &amp; Data &amp; Materials + Tex. Or, you can select each sphere, go the material panel and click the number  beside it to make it unique to that sphere.