new_contents: from beets.plugins import BeetsPlugin
  from beets.ui import Subcommand, decargs, print_
  from beets.util.functemplate import Template
  import random
  
  
  """
  Get a random song or album from the library
  """
  
  
  def random_item(lib, config, opts, args):
      query = decargs(args)
      path = opts.path
      fmt = opts.format
  
  
      if fmt is None:
          # If no specific template is supplied, use a default
          if opts.album:
              fmt = u'$albumartist - $album'
          else:
              fmt = u'$artist - $album - $title'
      template = Template(fmt)
  
  
      if opts.album:
          items = list(lib.albums(query))
          item = random.choice(items)
          if path:
              print_(item.item_dir())
          else:
              print_(template.substitute(item._record))
      else:
          items = list(lib.items(query))
          item = random.choice(items)
          if path:
              print_(item.path)
          else:
              print_(template.substitute(item.record))
  
  random_cmd = Subcommand('random', help='chose a random track, album, artist, etc.')
  random_cmd.parser.add_option('-a', '--album', action='store_true',
          help='choose an album instead of track')
  random_cmd.parser.add_option('-p', '--path', action='store_true',
          help='print the path of the matched item')
  random_cmd.parser.add_option('-f', '--format', action='store',
          help='print with custom format', default=None)
  random_cmd.func = random_item
  
  class Random(BeetsPlugin):
      def commands(self):
          return [random_cmd]
  
subject: add random plugin