Topology optimization is used to find a preliminary structural configuration that meets a predefined criterion. It involves optimizing both the external boundary and the distribution of the internal material within a structure. Usually, counters are used a posteriori to the topology optimization to further adapt the shape of the topology according to manufacturing needs. Here we suggest optimizing topologies by evolving counters. We consider both outer and inner counters to allow for holes in the structure. Due to the difficulty of defining a reliable measure for the differences among shapes, little research attention has been focused on simultaneously finding diverse sets of optimal topologies. Here, niching is implemented within a suggested evolutionary algorithm in order to find diverse topologies. The niching is then embedded within the algorithm through the use of our recently introduced partitioning algorithm. For this algorithm to be used, the topologies are represented as functions. Two examples are given to demonstrate the approach. These examples show that the algorithm evolves a set of diverse optimal topologies.