Updated single run to use random pseudorandom seeding for the K cluster centers. Overloaded to accept N for multiple trials, returning the best.