anchor.diff:  shuffle(List) -> shuffle(List, []).
   shuffle([], Acc) -> Acc;
   shuffle(List, Acc) ->
  -    {Leading, [H | T]} = lists:split(random:uniform(length(List)) - 1, List),
  -    shuffle(Leading ++ T, [H | Acc]).
  -
  -	
  +  {Leading, [H | T]} = lists:split(rand:uniform(length(List)) - 1, List),
  +  shuffle(Leading ++ T, [H | Acc]).
  +
  +
   %% -------------------------------------------
   %
   % initialisiert die Mi der ggT-Prozesse, um den
  
positive.code: % aktives Abholen mit   {ok, {Address, Port, Packet}} = gen_udp:recv(Socket, 0),
  openRec(MultiCast, Addr, Port) ->
    io:format("~nMultiCast: ~p~nAddr: ~p~nPort: ~p~n", [MultiCast, Addr, Port]),
    {ok, Socket} = gen_udp:open(Port, [binary, 	{active, false}, {reuseaddr, true}, {multicast_if, Addr}, inet, 
  												{multicast_ttl, ?TTL}, {multicast_loop, true}, {add_membership, {MultiCast, Addr}}]),
    Socket.
  
    % Aktives UDP-Socket:
  % openSe(IP,Port) -> Socket
  % diesen Prozess PidSend (als Nebenläufigenprozess gestartet) bekannt geben mit
  %  gen_udp:controlling_process(Socket, PidSend),
  % senden  mit gen_udp:send(Socket, Addr, Port, <MESSAGE>)
  openSeA(Addr, Port) ->
    io:format("~nAddr: ~p~nPort: ~p~n", [Addr, Port]),
    {ok, Socket} = gen_udp:open(Port, [binary, 	{active, true}, {ip, Addr}, inet, 
  												{multicast_loop, false}, {multicast_if, Addr}]),
    Socket.
   
  % openRec(IP,Port) -> Socket
  % diesen Prozess PidRec (als Nebenläufigenprozess gestartet) bekannt geben mit
  %  gen_udp:controlling_process(Socket, PidRec),
  % passives Empfangen mit   receive	{udp, ReceiveSocket, IP, InPortNo, Packet} -> ... end
  openRecA(MultiCast, Addr, Port) ->
    io:format("~nMultiCast: ~p~nAddr: ~p~nPort: ~p~n", [MultiCast, Addr, Port]),
    {ok, Socket} = gen_udp:open(Port, [binary, 	{active, true}, {reuseaddr, true}, {multicast_if, Addr}, inet, 
  												{multicast_ttl, ?TTL}, {multicast_loop, false}, {add_membership, {MultiCast, Addr}}]),
    Socket.
  
  % Nachrichtenpaket fertig stellen
  createBinaryS(Station) ->
      % 1 Byte for Stationtype  
  %	<<(list_to_binary(Station)):8/binary>>.
  	<<(list_to_binary(Station))/binary>>.
  createBinaryD(Data) ->
      % 24 Byte for Payload  
  %	<<(list_to_binary(Data)):192/binary>>.
  	<<(list_to_binary(Data))/binary>>.
  createBinaryNS(NextSlot) ->
      % 1 Byte for NextSlot
  %    <<NextSlot:8/integer>>.
      <<NextSlot>>.
  createBinaryT(Timestamp) ->    
      % 8 Byte for Time  
      <<(Timestamp):64/big-unsigned-integer>>.	
  concatBinary(BinStation,BinData,BinNextSlot,BinTime) ->         
      % Konkatenieren der Binaries: Nachrichtenformat pruefen!             
      <<BinStation/binary, BinData/binary,BinNextSlot/binary,BinTime/binary>>.
  concatBinary(BinStation,BinData,BinNextSlot) ->         
      % Konkatenieren der Binaries: Nachrichtenformat pruefen!             
      <<BinStation/binary, BinData/binary,BinNextSlot/binary>>.
  
  message_to_string(Packet)	->
  %	Packet= <<BinStationTyp:8/binary,BinNutzdaten:192/binary,Slot:8/integer,Timestamp:64/integer>>
  	StationTyp = binary:bin_to_list(Packet,0,1),
      Nutzdaten= binary:bin_to_list(Packet,1,24),
  	Slot = binary:decode_unsigned(binary:part(Packet,25,1)),
  	Timestamp = binary:decode_unsigned(binary:part(Packet,26,8)),
      {StationTyp,Nutzdaten,Slot,Timestamp}.
  	
  	
  	
  %% -------------------------------------------
  %% Mischt eine Liste
  % Beispielaufruf: NeueListe = shuffle([a,b,c]),
  
negative.code: % senden  mit gen_udp:send(Socket, Addr, Port, <MESSAGE>)
  openSe(Addr, Port) ->
    io:format("~nAddr: ~p~nPort: ~p~n", [Addr, Port]),
    {ok, Socket} = gen_udp:open(Port, [binary, {active, false}, {reuseaddr, true}, {ip, Addr}, {multicast_ttl, ?TTL}, inet,
      {multicast_loop, true}, {multicast_if, Addr}]),
    Socket.
  
  % openRec(IP,Port) -> Socket
  