select(list, ctx) {
		const key = this.getKeyFromContext(ctx);

		if (key != null) {
			if (this.needRebuild) this.rebuild(list);

			const nodeID = this.getNodeIDByKey(key);
			if (nodeID) return list.find(ep => ep.id == nodeID);
		}

		// Return a random item (no key)
		return list[randomInt(0, list.length - 1)];
	}
Select an endpoint by sharding.

@param {Array<Endpoint>} list
@param {Context} ctx
@returns {Endpoint}
@memberof ShardStrategy