Round robin keeps a counter and hands request 1 to server A, request 2 to server B, request 3 to server C, then loops back to A. It is dead simple and needs no state about the backends. The weakness is that it treats a 10 second request the same as a 1 millisecond one, so load can drift uneven even though request counts look balanced.
Least connections tracks how many active connections each server currently holds and routes the next request to whichever has the fewest. This naturally handles uneven request durations because a server stuck on slow work shows a high connection count and stops receiving new traffic until it drains. It costs a little more because the balancer must keep a live count per server.
Weighted round robin and weighted least connections add a weight per server, so a box with 32 cores can be given weight 4 while an 8 core box gets weight 1, and it receives roughly four times the traffic. IP hash computes a hash of the client IP address and maps it to a fixed server, which gives sticky sessions without a shared session store, at the cost of uneven distribution if a few large clients dominate.