Whilst every answer here is correct in terms of why the CSS and JavaScript have been combined into a singular file for each language (i.e. all CSS in one file, all JavaScript in one file), no one has given a real reason as to why an alphanumeric string might be used — in place of, say, a linear numeric id or version number.
The main reason for using an alphanumeric hash, in this case, is generally due to not wanting the hassle or delay of storing extra data with regard to the aggregation. Whenever you have an automated system, if you want an incrementing number, you need to store that number somewhere i.e. in a database. It gets more complicated if you want this number to be a version number because that means you have to store a separate number for each emalgamated file (the number of emalgameted files can change rapidly when using a CMS, it's all dependent on what is being loaded on that particular page).
Put simply it is far easier to generate a alphanumeric hash based on a salt value and the current timestamp using something like MD5
or SHA1
at the time of rendering your HTML source. These functions almost guarantee non-collision with previous values (something you wish to avoid when caching is involved, as other posters have stated) due to the length of the generated hashes and being based on an ever increasing timestamp.
An added bonus of making the file names shuffle randomly is that it prevents external users from hotlinking or other nefarious tricks. This isn't so much of a problem with CSS, but can be with JS.