Given a graph G = (V, E), the b-coloring problem consists in attributing a color to every vertex in V such that adjacent vertices receive different colors, every color has a b-vertex, and the number of colors is maximized. A b-vertex is a vertex adjacent to vertices colored with all used colors but its own. The b-coloring problem is known to be NP-Hard and its optimal solution determines the b-chromatic number of G, denoted χ b (G). This paper presents an integer programming formulation and a very effective multi-greedy randomized heuristic which can be used in a multi-start metaheuristic. In addition, a matheuristic approach is proposed combining the multi-start multi-greedy randomized metaheuristic with a MIP (mixed integer programming) based local search procedure using the integer programming formulation. Computational experiments establish the proposed multi-start metaheuristic as very effective in generating high quality solutions, along with the matheuristic approach successfully improving several of those results. Moreover, the computational results show that the multi-start metaheuristic outperforms a state-of-the-art hybrid evolutionary metaheuristic for a subset of the large instances which were previously considered in the literature. An additional contribution of this work is the proposal of a benchmark instance set, which consists of newly generated instances as well as others available in the literature for classical graph problems, with the aim of standardizing computational comparisons of approaches for the b-coloring problem in future works.