The algorithm for generating UIDs in MITK (mitk::UIDGenerator) is quite rudimental and might not work for every case.
An idea is to have a look at the boost algorithm which is well implemented:
http://www.boost.org/doc/libs/1_52_0/libs/uuid/uuid.html
There is also a link to an ISO standard concerning UIDs:
http://www.itu.int/ITU-T/studygroups/com17/oid/X.667-E.pdf
UID generation is closely related to random number generation, but keep in mind that an ideal UID generator should really assure that an ID is unique (maybe all over the world, depending on the use case).
At the moment std::rand is used in mitk::UIDGenerator, but another possibility might be the ITK random number generator.