Use a Database
Put your CDs in a database, with a numerical label on each one. Don't try to organize them on the shelf -- use the database to find a specific CD.
For example, I've put my CD collection in a mySQL database. Each CD is labeled with a numerical tag (1 through 653). The CDs are not organized in the shelving system. I put together a simple PHP web interface to search through the collection. You could use the same idea with local database, if you didn't want a web front-end.
If I want to find a specific CD, I do a search -- for example, I might search on "Metheny". The database returns all of the Pat Metheny CDs in my collection -- with the corresponding numerical index so I can quickly find the actual CD. When I buy a new CD it just takes the next numerical number that is available (654) and I don't have to shuffle the CDs around on the shelf to try and fit the new CD into a "Jazz" for example.