diff --git a/source/funkin/FreeplayState.hx b/source/funkin/FreeplayState.hx
index 918e7c725..0ba5d5175 100644
--- a/source/funkin/FreeplayState.hx
+++ b/source/funkin/FreeplayState.hx
@@ -84,6 +84,7 @@ class FreeplayState extends MusicBeatSubState
 
   var dj:DJBoyfriend;
 
+  var letterSort:LetterSort;
   var typing:FlxInputText;
   var exitMovers:Map<Array<FlxSprite>, MoveData> = new Map();
 
@@ -413,7 +414,7 @@ class FreeplayState extends MusicBeatSubState
     txtCompletion.visible = false;
     add(txtCompletion);
 
-    var letterSort:LetterSort = new LetterSort(400, 75);
+    letterSort = new LetterSort(400, 75);
     add(letterSort);
     letterSort.visible = false;
 
@@ -953,6 +954,7 @@ class FreeplayState extends MusicBeatSubState
     trace("RANDOM SELECTED");
 
     busy = true;
+    letterSort.inputEnabled = false;
 
     var availableSongCapsules:Array<SongMenuItem> = grpCapsules.members.filter(function(cap:SongMenuItem) {
       // Dead capsules are ones which were removed from the list when changing filters.
@@ -963,6 +965,15 @@ class FreeplayState extends MusicBeatSubState
       return cap.songData.songName;
     })}');
 
+    if (availableSongCapsules.length == 0)
+    {
+      trace("No songs available!");
+      busy = false;
+      letterSort.inputEnabled = true;
+      FlxG.sound.play(Paths.sound('cancelMenu'));
+      return;
+    }
+
     var targetSong:SongMenuItem = FlxG.random.getObject(availableSongCapsules);
 
     // Seeing if I can do an animation...
@@ -976,6 +987,7 @@ class FreeplayState extends MusicBeatSubState
   function capsuleOnConfirmDefault(cap:SongMenuItem):Void
   {
     busy = true;
+    letterSort.inputEnabled = false;
 
     PlayStatePlaylist.isStoryMode = false;
 
diff --git a/source/funkin/freeplayStuff/LetterSort.hx b/source/funkin/freeplayStuff/LetterSort.hx
index e6d923c90..edf1221d2 100644
--- a/source/funkin/freeplayStuff/LetterSort.hx
+++ b/source/funkin/freeplayStuff/LetterSort.hx
@@ -23,6 +23,8 @@ class LetterSort extends FlxTypedSpriteGroup<FlxSprite>
   var rightArrow:FlxSprite;
   var grpSeperators:Array<FlxSprite> = [];
 
+  public var inputEnabled:Bool = true;
+
   public function new(x, y)
   {
     super(x, y);
@@ -72,8 +74,11 @@ class LetterSort extends FlxTypedSpriteGroup<FlxSprite>
   {
     super.update(elapsed);
 
-    if (FlxG.keys.justPressed.E) changeSelection(1);
-    if (FlxG.keys.justPressed.Q) changeSelection(-1);
+    if (inputEnabled)
+    {
+      if (FlxG.keys.justPressed.E) changeSelection(1);
+      if (FlxG.keys.justPressed.Q) changeSelection(-1);
+    }
   }
 
   public function changeSelection(diff:Int = 0)