Beispiel für ausgewähltes Plotten mit Manipulate

Das Problem eines Kunden. 
Angenommen, wie haben eine Matrix mit n Zeilen, jede Zeile enhält Funktionswerte and den Stellen 1,..., m:  Beispiel für n=5 und m= 50:

arr={};
For[i=1,i≤5,{AppendTo[arr,Table[Random[],{j,50}]];};i++];
MatrixForm[arr]

Mit ListPlot kann man die Funktione darstellen, dabei kann man angeben, ob die Punkte verbunden werden sollen (und das sogar spezifisch für jede Funktion). Die einzelnen Funktionen werden automatisch verschieden gefärbt. Wir möchten gerne einige der Funktione verbinden und zugleich auch den Wertebereich variieren können. 
Das Problem läßt sich am besten als Funktion definieren:

f[n_,y_]:=ListPlot[arr,Joined->n,PlotRange->{All,{0,y}}]

Mit der folgenden Definition ergibt sich dann eine erste Möglichkeit:

ntuple[n_]:=Tuples[{True,False},n]

Manipulate[f[n,y],{n,ntuple[Length[arr]]}, {y,0,40}]

Mit folgender geschachtelter Manipulate - Anwendung erhält man eine Variante mit Checkboxen: Die Verbindung zwischen den Werten der Funktionen läßt sich sich interaktiv "an-/ausschalten":

a=.;Manipulate[With[{value =Table[a[j],{j,1,Length[arr]}],controls =Sequence@@Table[{{a[j],True,"F"<>ToString[j]},{True, False}},{j,1,Length[arr]}] }, Manipulate[f[value,y], controls, ControlPlacement -> Left]],{y, 1, 10}]