How to change user id from incremental integer to random hash?
Just aliasing the path (as suggested by m1n0) will not be enough, as  users allowed to see the user profile will still be able to connect a user name and profile to a numeric user ID by entering an URL ending with user/ID (where ID is an integer, e.g. 1 for user #1). This will let anyone permitted to view user profiles to view the user name and profile associated with user/ID.

As pointed out by Jimajamma, totally replacing the numeric user ID with a random hash is a major undertaking, since just doing it will break a lot of stuff hard coded in Drupal.  No module exists that will do this for you.  If you want to do this, you'll have to start from scratch.

What you need to do to avoid numeric user IDs from being associated with specific user names and profiles is to prevent non-privileged users from ever seeing the user profile.

Navigate to  Administration » People » Permission and make sure that non-privileged user does not have the permission "View user profile".

After doing this, if a non-privileged user typed in an URL ending with user/1 (or anURL with any other numeric user ID) a 403 status code (Permission denied) will be returned.  Also user names that appear in bylines, etc. will no longer be linked to a profile when viewed by a  non-privileged user.