The reason this happens appears to be that the second parameter to "WorldgenRandom.setFeatureSeed()" is not consistent. I observed this while reversing the setFeatureSeed() parameters, from a feature that generated in-game. Each time I regenerated a world with the same seed, and reversed the second parameter using the same feature, the second parameter would be different. The first (seed) and third (GenerationStep) parameters are consistent. Due to the way the seeding is done, this often results in the first "WorldgenRandom.nextFloat()" when using "LegacyRandomSource" as the underlying PRNG (or just "WorldgenRandom.nextFloat()" in earlier versions), having a similar value, so the chance decorator will have a similar outcome, but the rest of the feature will be completely different.
The reason this happens appears to be that the second parameter to "WorldgenRandom.setFeatureSeed()" is not consistent. I observed this while reversing the setFeatureSeed() parameters, from a feature that generated in-game. Each time I regenerated a world with the same seed, and reversed the second parameter using the same feature, the second parameter would be different. The first (seed) and third (GenerationStep) parameters are consistent. Due to the way the seeding is done, this often results in the first "WorldgenRandom.nextFloat()" when using "LegacyRandomSource" as the underlying PRNG (or just "WorldgenRandom.nextFloat()" in earlier versions), having a similar value, so the chance decorator will have a similar outcome, but the rest of the feature will be completely different.