Heterogeneous networks are designed to increase the capacity for cellular data traffic. Self-organization is a key element of heterogeneous cellular networks. In this thesis, we present a randomized algorithm that addresses two challenges in HetNets, namely energy saving and throughput maximization, in a self-organizing manner. More specifically, the proposed algorithm seeks to maximize an objective function that balances the trade-off between the downlink bit rate of users, and the energy consumption of base stations. To achieve this goal, we deactivate under-utilized picocells to save energy, and adjust low-power Almost Blank Subframes to utilize the frequency spectrum and minimize the interference between macrocells and picocells. An important feature of our algorithm is its distributed design, which eliminates the need for a central device to coordinate the base stations. In fact, the base stations directly interact with each other in a locally defined neighborhood to drive the system toward the optimal state.