QRandomGenerator::generate() returns an unbounded int32, while the legacy qrand method always returned a positive number. When generating a tag reader ID with QRandomGenerator, cast the random value to an unsigned so that it is formatted as a positive number in the name. Note that most usages of QRandomGenrator in the codebase use bounded() instead of generate(), and should work as expected.