The compiler caches the result of comptime functions based on the input parameters. This is an important optimization to avoid having many duplicated of e.g. ArrayList(u8).
There are even easier ways to defeat this than random numbers. Since anonymous types are different each time, you can also just pass opaque{} in there. See for example C/C++ macro challenge #1: BOOST_PP_COUNTER - #4 by ianprime0509
Why would you want to defeat this though?