Realistically, biomes are just a simplified model that allows us to compartmentalize all the infinite possible 'environments' into a few discrete categories.
Those environments arise as a result of multiple factors that vary over space (weather, 'composition' of the area like vegetation and terrain material, terrain geometry and other large scale things that might affect things like latitude or a big mountain nearby)
So to get real biomes, you need to model those individual factors. So now you have infinitely diverse local environments.
Then, if you want, you can categorize those infinite environments into a finite number of 'biomes' for gameplay purposes.
But IMO, you should not hide the detail and only take the simplified model. It would be better to use the simplification for the player to visualize the world, even if its not an exact representation. So there would still be those interesting cases where no biome really describes the location well, or where two places of the same biome are actually subtly different. I think thats something that is easy to get wrong when you want 'biomes' in a game. You just end up with like 5 possible locations that are all the same, with hard transitions between. If you treat biomes as the simple approximations they are and not as the foundation of your world generation, its going to be much more natural.