The soccer ball has a light pentagonal imprint representing the seams of a soccer ball. The basketball has a deeper imprint representing basketball seams. There's no noticeable difference in how they perform on a GBC. Both ball types have a small holes and a flat spot with the LEGO logo on it. A ball can come to rest on these spots, even on a gentle slope. By intentionally placing a ball on these spots, one can test whether a ramp has sufficient slope to ensure balls will not stop on that ramp.

It has been reported on Eurobricks that 15mm through-hole plastic beads used for plastic jewelry are a feasible substitute for LEGO balls.

You can order balls currently in production through LEGO Bricks and Pieces, here, for example. As with other LEGO parts, BrickLink resellers may have balls in quantity. If you are part of a LEGO fan club, you can probably get them through LEGO's annual LUGBULK program.

It is possible to design a GBC module around Bionicle Zamor Spheres. These are somewhat cheaper than standard balls, and come in a wide variety of colours. However, such a module would not be compliant with the standard unless it handled the regular balls as well. There are some important differences between the Zamors and standard balls:

Zamors are slightly larger. A standard ball will roll nicely down a 2-stud wide channel (or through a 2-stud wide gap). Zamors, on the other hand, are designed to fit snugly in a 2-stud space. So, just as a Zamor may not fit in a module designed for standard balls, a standard ball might fall through some gap that presents no problem for Zamors.

Zamors have a divot on one side that is significantly more troublesome than the small holes in standard balls, mentioned above. A Zamor-capable module has to have its slopes somewhat steeper than a standard module.

Certainly there are modules that can handle balls of both types, but care must be taken if intending to integrate Zamor module/s into a layout that uses standard balls.