Disclaimer: I don't have any formal infosec training; I'm just a nerdy guy that likes coding, Linux, and FOSS.
[...] my browser fingerprint is unique!
How is this possible? How to prevent it?
No clue why it does this in your specific case, so I'm not even going to attempt to answer that one.
As for the unique id, personally, I don't consider that to necessarily be the only significant factor in staying anonymous. For instance, one solution I had previously looked into for preventing browser fingerprinting in Firefox was to use the addon Chameleon. I also configured it so that I got a random user agent string every X number of minutes (to be clear: this doesn't just change the user agent string; it has a bunch more settings for spoofing fingerprinting related header fields and such as well). While testing on several of the browser fingerprinting test sites such as the one the EFF had, I had noticed it would still flag mine as unique even with these settings...
But if you think about it, the real danger in having a unique fingerprint is that it is persisted and can be correlated to other web activity at other times due to that persistence. If I get a new fingerprint every couple minutes - but it is unique, there still isn't any persistence that can be used to correlate it with any of my other web activity. At least, there shouldn't be if I'm doing everything else right (using a VPN/TOR, not logging in with the same user name everywhere, not logging into accounts like social media/email that can be tied to activity from other fingerprints, etc)
Now, everything I just said probably doesn't really apply to your situation due to the VM guest hardware playing a role. BUT, you might potentially be able to use the same addon as a solution if you are using Firefox. AFAIK, this extension has not been ported to Chrome (there were "Chameleon" extensions but not by the same author); however, there may be Chrome extensions which do something similar.