Cognitive radio networks (CRNs) have emerged as a critical technique for solving spectrum shortage problems and enhancing the utilization of licensed channels. To prevent interference with the co-locate incumbent networks, before data transmission, nodes in CRNs should rendezvous on an available channel (i.e., idle licensed channel) for establishing a link or exchanging control information. However, implementing rendezvous is challenging because the availability of channels is time-varying and position-varying. For reducing rendezvous failure and increasing throughput, a node pair in CRN should be able to rendezvous on every licensed channels (i.e., maximizing rendezvous diversity) and rendezvous on an available channel as soon as possible (i.e., minimizing maximum conditional time to rendezvous (MCTTR)). Besides, to take full advantage of the frequency diversity of multi-channel medium access, rendezvous should be spread out in time and channel (i.e., minimizing channel loading). In this paper, we propose two rendezvous channel hopping algorithms, T-CH and D-CH, which can be used without time synchronization and role pre-assignment (each node has a pre-assigned role as either a sender or a receiver). D-CH requires that SUs in CRNs should have a unique ID (identifier), while T-CH does not. Both our T-CH and D-CH have maximum rendezvous diversity and minimum channel loading, and outperform in terms of MCTTR.