It can generate and release gas within its body. That’s how it can control the altitude of its drift.
It carries people and Pokémon when it flies. But since it only drifts, it can end up anywhere.