The chosen player (here a Major one, that means excluding independents) is mainly determined by distance between the liberated city and the player's capital. First, if that city has no culture of yours and is farther from your capital than some other's capital, then the liberation mechanics is enabled. To put simple, the chosen player is the one having the highest value in the following function: TheirCulture/Distance
Here comes particular multipliers that inflate or deflate the value. Inflated distance certainly decrease the potential of a player to be chosen. The distance is doubled if the player has its capital on some other continent. For instance, a versus between the Incas and the Koreans, the Incas has better chances until the doubled of their capital-liberated city distance is weaker than the distance liberatedCity-KoreanCapital.
Another factor is the original Owner factor, which I suspect is who has the majority in culture. Gives a favorable multiplier of 1.5.
The last one is attibuted to either vassals of partners of a permanent alliance. Another favorable multiplier that gives doubled value divided by the proportion of their culture inside the city.
In a nutshell, suspecting the culture aspect is irrelevant, the distance is what determined the chosen player. BTW, meeting the player of not doesn't matter as this mechanics is independent to that factor. Basically, you could meet a hidden player deep in unsurmountable mountains through city liberation under condition their capital is nearer to that city and no culture of yours is in that city.
The only aspect that bugs me is why the Japanese aren't chosen. I have counted the stepDistance (1.5 point for diagonal tiles) and it gives a smaller distance for Japan than Korea. It's a mystery to me. But it's very possible to be a bug. Just like liberating captured Cha'ang empties Yerushalayim independent culture for no reason. Given the heavy use of python, that's possible some bug infiltrated.