1. A system comprising at least one server having at least one memory holding a data structure comprising multiple entries, wherein each entry associates an application pairing with a weighting, each application pairing comprising a source installation and a target installation, and multiple targets, and at least one processor configured to execute a target selection algorithm which selects a set of weightings to be transmitted to a client or user device wherein said client or user device is in communication with the at least one server and comprises a processor configured: to execute a source installation, to detect a target requirement in execution of the source installation and to generate a target required signal to the at least one server, to receive the set of weightings, to generate a set of range fractions from the weightings, each range representing a target installation and having a proportion of the range corresponding to the weighting, and to select randomly a number falling in the range and to request from the server a notification of a target installation represented by the fraction of the range containing the number.