In construction industry general contractors (GCs) need to manage and conduct numerous projects simultaneously. To this aim, they usually have subcontractors conduct available tasks and projects. So, subcontractor management is becoming a major challenge. To deal with this challenge, GCs aim to reduce total costs of projects including employment /subcontracting costs, indirect costs, tardiness penalties, and the money which must be paid for movement of workforce from one project to another. The aim of current research study is to propose a model for selecting subcontractors and assigning available tasks in the project to them in order to reduce the costs of the GC. Then, a genetic algorithm (GA) is proposed to solve a real problem. The proposed algorithm is innovative from three points of view: (1) generation of initial population; (2) subcontractor assignment approach and (3) the objective function. The problem was also solved by means of an exact method. Then, the results of proposed algorithm were compared to the outcomes of the exact method. This comparison shows that the proposed algorithm can efficiently help GCs select subcontractors and assign available tasks to each subcontractor when several projects must be carried out simultaneously.