Tor client makes an unencrypted connection to a centralised server to get a list of available alive Tor nodes. The Tor client then connects to a random node through an encrypted connection. This random selected node would make an encrypted connection to another tor node which would do the same etc etc. The last random tor node in the circuit will connect to the destination.
Random path selection leaves no footprints.
Tor only works for TCP streams and can be used by any application with SOCKS support. For efficiency and security reasons(statistical analysis) the Tor client uses the same circuit for ten minutes or so.
Later requests are given a new circuit.
When the client wants to visit another site the Tor client selects a different random path.
Pictures have been taken from Tor project website.