SQL Server - creating a clustered index in a large heap - should I add a column?
In general, a surrogate ID (an incrementing number that doesn't have any other meaning) is the best choice unless you have a specific reason why it won't work.

One of the biggest problems with using a non-incrementing value for a primary key is that you'll have page splits on some inserts, which will cause them to be slower.  How much slower depends on a lot of factors, so it's just something you'd have to measure on the system.

Google "benefits of surrogate primary key" and you'll find a ton of information.  It's really a small book to cover the topic, so the full answer isn't really appropriate for this site.  This question also has a few answers that provide good information on this topic.